2016-04-15 10 views
0

私は次のようにデバッグするHTTPS呼び出しを行っています。 open_uriが正常に動作します:open-uriは動作しますが、net :: http、なぜですか?

irb(main):053:0* r=OpenURI::open_uri("https://192.168.8.123/api/1.0/appliance-management/components/component/status", opts) 
=> #<StringIO:0x007fc6e4a8ee38 @base_uri=#<URI::HTTPS https://192.168.8.123/api/1.0/appliance-management/components/component/status>, @meta={"cache-control"=>"private", "expires"=>"Thu, 01 Jan 1970 00:00:00 GMT", "set-cookie"=>"JSESSIONID=B117FD42DA5509EBF99627C08332F249; Path=/; Secure; HttpOnly", "content-type"=>"application/json", "transfer-encoding"=>"chunked", "date"=>"Fri, 15 Apr 2016 14:16:08 GMT", "server"=>""}, @metas={"cache-control"=>["private"], "expires"=>["Thu, 01 Jan 1970 00:00:00 GMT"], "set-cookie"=>["JSESSIONID=B117FD42DA5509EBF99627C08332F249; Path=/; Secure; HttpOnly"], "content-type"=>["application/json"], "transfer-encoding"=>["chunked"], "date"=>["Fri, 15 Apr 2016 14:16:08 GMT"], "server"=>[""]}, @status=["200", "OK"]> 

しかし、ネット:: HTTP常に取得ReadTimeoutエラー:私はNet :: HTTPコードと間違って何

irb(main):096:0* http = Net::HTTP.new('192.168.8.123', 443) 
=> #<Net::HTTP 192.168.8.123:443 open=false> 
irb(main):097:0> http.use_ssl = true 
=> true 
irb(main):099:0> http.verify_mode=OpenSSL::SSL::VERIFY_NONE 
=> 0 
irb(main):102:0* req = Net::HTTP::Get.new("/api/1.0/appliance-management/components/component/status", {}) 
=> #<Net::HTTP::Get GET> 
irb(main):104:0* req.basic_auth('admin', 'default') 
=> ["Basic YWRtaW46ZGVmYXVsdA=="] 
irb(main):106:0* http.request(req) 
Net::ReadTimeout: Net::ReadTimeout 
     from /opt/ruby/2.2.0/lib/ruby/2.2.0/net/protocol.rb:158:in `rescue in rbuf_fill' 

+0

あなたは192.168.8.123、ポート443で到達可能であることを確認することができますか? 'telnet 192.168.8.123 443' は と接続してください。' 192.168.8.123に接続しました。 エスケープ文字は '^]'です。 if so –

+0

ご覧のとおり、open_uriが動作します。 – TieDad

答えて

0

問題が発生しました。これはRuby 2.2の変更によるものです。 Ruby 1.9.1では、Net :: HTTPはデフォルトでプロキシを使用しませんが、Ruby 2.2ではNet :: HTTPはデフォルトでENVからプロキシを取得します。したがって、我々はネット:: HTTPオブジェクトを初期化するとき、我々は明示的にプロキシを使用しないように強制する必要のRuby 2.2、中:

http = Net::HTTP.new(ip, port, nil) 
関連する問題