[#40647] RAA dead link check — "NAKAMURA, Hiroshi" <nakahiro@...>

なひです。

19 messages 2005/03/04
[#40685] Re: RAA dead link check — "NAKAMURA, Hiroshi" <nakahiro@...> 2005/03/20

-----BEGIN PGP SIGNED MESSAGE-----

[ruby-list:40668] net/httpが返すエラーの捕捉について質問

From: ikezawa@... (ikezawa)
Date: 2005-03-13 08:29:35 UTC
List: ruby-list #40668
池澤といいます。

net/http を使用して、下記のようにデータの自動取得をしようとしています。

Net::HTTP.version_1_2
Net::HTTP.start('www.hoge.co.jp', 80) {|http|
  response = http.get("/hoge/fuga.cgi?xx=yy")
  puts response.body
}

環境はwindows2000です。
ruby -v
ruby 1.8.1 (2003-12-25) [i386-mswin32]

以下のエラーを捕捉するにはどのようにすればよいのか、ご質問いたします。

net/httpクラスのメソッドには
open_timpout あるいは read_timeoutなどがあるようですが、これらを使うのか、
または単に
begin
  Net::HTTP.start('www.hoge.co.jp', 80) {|http|
    response = http.get("/hoge/fuga.cgi?xx=yy")
    puts response.body
  }
rescue
  ....
end
のようにするのか、いろいろやってみているのですが、HTTPそのものが分かって
いないためではありますが、うまくいきません。ヒントだけでもいただけると助
かります。よろしくお願いします。

【エラーの内容】
=======================================================================
c:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:83:in `initialize': 
接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続
できませんでした。または接続済みのホストが応答しなかったため、確立された
接続は失敗しました。
 - connect(2) (Errno::ETIMEDOUT)
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:83:in `new'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:83:in `connect'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:82:in `timeout'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/timeout.rb:55:in `timeout'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:82:in `connect'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:64:in `initialize'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/http.rb:430:in `open'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/http.rb:430:in `do_start'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/http.rb:419:in `start'
   from c:/Program Files/ruby-1.8/lib/ruby/1.8/net/http.rb:324:in `start'
=======================================================================
以上

---<IKEZAWA>---


In This Thread

Prev Next