あおきです。

  In mail "[ruby-list:21659] Re: net-1.1.10"
    TAKAHASHI Masayoshi <maki / inac.co.jp> wrote:

> 高橋征義です。

> > ところで、現在の仕様では 302 とかになると例外になってしまうんですが、
> > これはどうなるのが妥当だと思われますか?そのような場合でも後に

> > くらいかなあ、と思うんですが。(実装はどれも簡単です。)
>
> 2と3は分かりにくいような気がします。こういうところで「場合」が
> 入るのはめんどくさそう。
> となると1か4かですが、これは趣味というか、流派?によるような。
> ステータスコードによる判断はタイミングが明確なので、どっちでも
> それなりには使えるとは思います。

そうですか…
デフォルトで望ましい方を考えるとやっぱり例外かな。


> で、たとえば現状のまま、例外をあげるとして、302が返ってきた場合の
> Location: の情報を取り出す場合、どうすればいいんでしょうか?
> どこにメッセージヘッダの情報が入っているのか分からないのですが……。

たとえば get2 なら(1.1.11 仕様)

begin
  http.get2( path, user_header ) do |f|
    header = f.header
    f.entity( save_file )
  end
rescue Net::HTTPMovedTemporarily
  if loc = f.header['Location'] then
    取りなおし
  end
end

てな感じになります。get では情報が足りないので(現状では)無理です。
-------------------------------------------------------------------
あおきみねろう