2012-03-12 120 views
16

這個偉大的工程:獲取HTTPS響應

require 'net/http' 

uri = URI('http://api.twitter.com/1/statuses/user_timeline.json') 
args = {include_entities: 0, include_rts: 0, screen_name: 'johndoe', count: 2, trim_user: 1} 
uri.query = URI.encode_www_form(args) 
resp = Net::HTTP.get_response(uri) 
puts resp.body 

但改變從httphttps導致無意義的錯誤。我不是問爲什麼這個錯誤是毫無意義的,我只想知道httpsget_response的最接近的方法是什麼?

我在Net::HTTP文檔中看到了'HTTPS'示例,但它看起來不是很令人印象深刻,它會讓我手動編寫來自參數哈希的URL - 沒有用。

回答

21

這裏是我的鏈接的Ruby 1.9.3下對我的作品

require "net/http" 

uri = URI.parse("https://api.twitter.com/1/statuses/user_timeline.json") 
args = {include_entities: 0, include_rts: 0, screen_name: 'johndoe', count: 2, trim_user: 1} 
uri.query = URI.encode_www_form(args) 
http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true 

request = Net::HTTP::Get.new(uri.request_uri) 

response = http.request(request) 
response.body 
+1

DOC的一個例子說_IN紅寶石以前的版本則需要要求「淨/ HTTPS」使用HTTPS。這不再是真的。 - 我們應該忽略這一點嗎? – 2012-03-12 14:50:55

+0

你是對的,要求「net/http」是好的,我會編輯答案 – beanie 2012-03-12 14:53:05

+1

該文件還說_require'淨/ http'也將需要'uri',所以你不需要單獨要求._你 – 2012-03-12 14:57:57