2012-03-12 10 views
16

Questa grande opera:Get HTTPS risposta

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 

Ma cambiare da http a https porta ad un errore di insignificante. Non sto chiedendo perché l'errore non ha senso, vorrei solo sapere qual è il mezzo più vicino per fare get_response per https?

Ho visto l'esempio "HTTPS" nel documento Net::HTTP ma non sembra molto impressionante e mi farà compilare manualmente l'URL dal mio hash dei parametri - non va bene.

risposta

21

Ecco un esempio che funziona per me sotto di 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

il doc presso il mio link dice _In versioni precedenti di rubino si avrebbe bisogno di richiedere ‘net/https’ per usare HTTPS. Questo non è più vero. - Dovremmo semplicemente ignorarlo? –

+0

hai ragione, richiede "net/http" è ok, modifico la risposta – beanie

+1

il documento dice anche _require 'net/http' richiede anche 'uri' quindi non è necessario richiederlo separatamente._ –