9

ブロックフォームなしで 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

私はルビー1.8.7を使用しています

4

1 に答える 1

26

オプションのハッシュを取るNet::HTTP.startのドキュメントを参照してください。ドキュメントから:

opt は、そのアクセサによって次の値を設定します。キーは、ca_file、ca_path、cert、cert_store、ciphers、close_on_empty_response、key、open_timeout、read_timeout、ssl_timeout、ssl_version、use_ssl、verify_callback、verify_depth、および verify_mode です。:use_ssl を true に設定すると、https を使用でき、verify_mode のデフォルト値は OpenSSL::SSL::VERIFY_PEER に設定されます。

Net::HTTP.start(url.host, url.port, :use_ssl => true)
于 2011-06-14T17:23:33.703 に答える