gpt4 book ai didi

ruby-on-rails - 使用 Ruby Curb 传递 GET 参数

转载 作者:数据小太阳 更新时间:2023-10-29 07:22:41 25 4
gpt4 key购买 nike

我正在尝试使用 Curb (curb.rubyforge.org) 调用需要在 get 请求中提供参数的 RESTful API。

我想获取像 http://foo.com/bar.xml?bla=blablabla 这样的 URL。我希望能够做类似的事情

Curl::Easy.perform("http://foo.com/bar.xml", :bla => 'blablabla') {|curl|
curl.set_some_headers_if_necessary
}

但到目前为止,我能看到的唯一方法是在 URL 中手动包含 ?bla=blablabla 并自己进行编码。当然有一个正确的方法可以做到这一点,但我无法阅读文档。

最佳答案

要使用 ruby​​ curb gem 传递 get 参数,您可以使用

Curl::postalize(params)

这个函数实际上回落到 curb gem 实现中的 URI.encode_www_form(params)。 https://github.com/taf2/curb/blob/f89bb4baca3fb3482dfc26bde8f0ade9f1a4b2c2/lib/curl.rb

一个关于如何使用它的例子是

curl = Curl::Easy.new
curl.url = "#{base_url}?#{Curl::postalize(params)}"
curl.perform

要访问您可以使用的 curl 返回字符串。

data = curl.body_str

第二种选择是

curl = Curl::Easy.new
curl.url = Curl::urlalize(base_url, params)
curl.perform
data = curl.body_str

请注意,Curl::urlalize 可能存在轻微缺陷,请参阅 pull对于已修复此缺陷的 postalize,但 urlalize 仍使用旧实现。

关于ruby-on-rails - 使用 Ruby Curb 传递 GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8072502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com