2013-04-07 36 views
1

我想在Ruby中發出HTTP頭請求。對於我使用下面的代碼在net/http中使用[]訪問標頭值

Net::HTTP.start(target) do |http| 
    http.open_timeout = 2 
    http.read_timeout = 2 
    http.head('/').each do |k, v| 
    puts "#{k}: #{v}" 
    end 

到目前爲止好,但我想訪問,而以類似的方式散列http.head值:

header = http.head('/') 
p header['Content-Type'] 

通過documentation瀏覽我開始想知道爲什麼each首先是一種方法。

回答

3

我不知道是否有在Ruby net/http庫的適當方法,但是從你的代碼,你總是可以用下面的代碼片段創建自己的Hash

headers = Hash.new 
http.head('/').each { |k, v| headers[k] = v } 
puts header['Content-Type'] 

畢竟庫方法應該只提供一個基本的功能,其餘的必須由你的應用程序來完成。雖然我很好奇,如果這是不可能的另一種方式。