有下面的代码工作的标题:我怎么包括在红宝石的http请求
uri = URI.parse("http://www.ncdc.noaa.gov/cdo-web/api/v2/datasets/")
response = Net::HTTP.get_response(uri)
现在我还需要在其与此令牌散列通头:
token: "fjhKJFSDHKJHjfgsdfdsljh"
我找不到有关如何执行此操作的任何文档。我该怎么做?
有下面的代码工作的标题:我怎么包括在红宝石的http请求
uri = URI.parse("http://www.ncdc.noaa.gov/cdo-web/api/v2/datasets/")
response = Net::HTTP.get_response(uri)
现在我还需要在其与此令牌散列通头:
token: "fjhKJFSDHKJHjfgsdfdsljh"
我找不到有关如何执行此操作的任何文档。我该怎么做?
get_response
是提出请求的简写形式,当您需要更多控制时 - 自己完成全部请求。
有Ruby的标准库here一个例子:
uri = URI.parse("http://www.ncdc.noaa.gov/cdo-web/api/v2/datasets/")
req = Net::HTTP::Get.new(uri)
req['token'] = 'fjhKJFSDHKJHjfgsdfdsljh'
res = Net::HTTP.start(uri.hostname, uri.port) {|http|
http.request(req)
}
虽然你当然可以用Net::HTTP
为了这个目标,宝石excon允许你这样做容易得多:
require 'excon'
url = 'http://www.ncdc.noaa.gov/cdo-web/api/v2/datasets/'
Excon.get(url, headers: {token: 'fjhKJFSDHKJHjfgsdfdsljh'})
这只是许多宝石中的一个而已。 [httpsparty](https://github.com/jnunemaker/httparty),[Faraday](https://github.com/lostisland/faraday)和[curb](https://github.com/taf2/curb)也很受欢迎。 – tadman
有许多宝石对于Ruby来说,使用HTTP比使用Net :: HTTP容易得多。我会推荐研究那些和选择一个。 Net :: HTTP确实是在那些没有其他东西存在的时候。 –