2006年4月11日

[ruby-list:42002] Re: Net::HTTP での refresh の取り扱い

岩月と申します。

06/04/10 に Takeshi Honda<moecho21@xxxxx> さんは書きました:
> webagentでのクッキー送信のスクリプト例をご存知の方がいら
> っしゃいましたら、教えていただけないでしょうか。

WebAgent 0.6.2 のソースを読みました。
読んだ感じでは、サーバから受け取ったクッキーを

次のリクエスト送信の際に送っているように見えます。

require "webagent"
a = WebAgent.new
$DEBUG = true # こうすると WebAgent#get 実行時にヘッダの内容が表示される
a.get("http://www.google.co.jp/", nil, nil)
a.get("http://www.google.co.jp/", nil, nil)

実行結果は省略しますが、Googleのトップページへのアクセスにおいて、
二回目のリクエスト時には一回目のレスポンスで受けとったクッキーを
一緒に送信しているように見えました。


ところで、今回の件の問題はクッキーよりもHTMLのヘッダに含まれる
Refreshの解釈では無いかと考えます。ちゃんと確かめてませんが、
WebAgent ではリダイレクト(301 302 303 307)
や認証(401)には対応していますが、通常の状態(200)において
受け取ったBODYの解釈までは行っていないように読めました。

WebAgentと同様のライブラリとしてWWW::Mechanizeを試しては
いかがでしょうか。ソースを読む限りではmeta要素のrefreshを解釈
しているようでした。ドキュメントというか使用した感想などが
Googleなどでそれなりに引っかかります。

RubyForge: WWW::Mechanize: Project Info
http://rubyforge.org/projects/mechanize/


--
IWATSUKI Hiroyuki <URL:mailto:don@xxxxx>

投稿者 xml-rpc : 2006年4月11日 01:15
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/41854
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。