2011-10-17 30 views
8

HTTPリクエストをブロックするためにアプリケーションが必要なので、私は数行のコードを追加しなければなりませんでした。 if uri.scheme == 'https'; http.use_ssl = trueは、私は現在のステートメントでHTTP/HTTPSを設定することができる方法があります:Ruby:HTTP.new.startと動的HTTP(S)をブロックする

Net::HTTP.new(uri.host, uri.port).start do |http| 

    # Causes and IOError... 
    if uri.scheme == 'https' 
    http.use_ssl = true 
    end 

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

を追加しました:IOError: use_ssl value changed, but session already started

答えて

18

にコードを変更してください、セッションの開始後にuse_ssl=に電話をかけることはできません。 startの後)。あなたは前にそれを設定する必要があり、例えば:

http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true if uri.scheme == 'https' 

http.start do |h| 
    h.request Net::HTTP::Get.new(uri.request_uri) 
end 
4

パー

http = Net::HTTP.new(uri.host, uri.port) 

if uri.scheme =='https' 
    http.use_ssl = true 
end 

http.start do 
    request = Net::HTTP::Get.new(uri.request_uri) 
    puts http.request(request) 
end 
+0

間違いをここにコードを書いている間...それはあなたが任意のIOErrors、@JordonBedwellは言及しなかった例外IOError –

+0

を起こさないでしょう。あなたはあなたの質問からいくつかの詳細を残しましたか? –

+0

@ Jordan noコードのコメントに "#Cause and IOError ..."と書かれていて、それを詳しく説明するのはずっと前です。 –

関連する問題