あづみです。

杉原 透修 wrote:
> 上記プログラムは4分以内の通信の場合は正常動作するのですが、
> 通信が約4分を超えるとtimeoutの設定とは別に
> 以下のメッセージが表示され落ちてしまいます。
> ----------------------------------------------------------------
> /usr/local/lib/ruby/1.6/net/protocol.rb:231:in `error!': 503 Service Unavailable
>  (Net::ProtoServerError)

HTTP サーバが 503 を返してるからではないかと。503 が返る時ってどん
な時でしたっけ。過負荷かな?

net/http は、version_1_1 だと、レスポンスのステータスコードが 2xx
以外の場合は raise するようです。

# 以前に If-Mofidied-Since を実装して、304 が返ってきて raise した
# ときはびっくりしたですよ^^

なので、適当なところに、

  Net::HTTP.version_1_2

を入れて動かすとうまくいくかもしれません。

# 私は rescue Net::ProtocolError するようにしたので
# Net::HTTP.version_1_2 は試してないのです^^


安積伸弥
adzumi / denpa.org