如果不使用块形式进行 Net::HTTP https 请求,可以采用以下方法:
...
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
...
但是在使用块形式时,有没有办法告诉Net::HTTP使用https呢?
u = URI.parse(url)
Net::HTTP.start(u.host, u.port) do |http|
# if I put http.use_ssl = true here, ruby complains that this can't
# be done becuase the sesion has already started
resp = http.get(u.request_uri)
end
我使用的是Ruby 1.8.7版本。
use_ssl
,那么你将无法使用块形式。当然,你可以在 https://gist.github.com/2cdc187fa0c7b608fe2c 中修补1.9.2版本的start方法。 - Lee Jarvis