有下面的代碼工作的標題:我怎麼包括在紅寶石的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確實是在那些沒有其他東西存在的時候。 –