&tag(Mechanize);
&tag(Ruby,Mechanize);
*目次 [#z7abda7a]
#contents
*参考情報 [#s68816a6]
* 参考情報 [#pd745a2f]
-[[RubyForge: WWW::Mechanize: Project Info:http://rubyforge.org/projects/mechanize/]]…公式。
-[[Class: Mechanize:http://mechanize.rubyforge.org/mechanize/Mechanize.html#M000238]]…公式ドキュメント。簡単なサンプルなどもあり。
-[[open-uriにできないこと - daily gimite:http://d.hatena.ne.jp/Gimite/20080405/1207365980]]…Mechanizeの簡単なサンプルあり。
*インストール [#of4f3d59]
 gem install mechanize
**Basic/Digest認証でGET [#i7c538f4]
#pre{{
require "rubygems"
require "mechanize"

agent= Mechanize.new()
agent.auth("user", "password")
page= agent.get("http://example.com/")
print(page.body)
}}
**POST [#n9084783]
#pre{{
require "rubygems"
require "mechanize"

agent= Mechanize.new()
page= agent.post("http://example.com/", {"key" => "value"})
print(page.body)
}}

*トラブルシューティング [#w9393f15]
**Digest認証でエラー [#vdb3992f]
-[[Issues - tenderlove/mechanize - GitHub:http://github.com/tenderlove/mechanize/issues/#issue/31]]で報告されている現象がmechanize-1.0.0で発生。
-Digest認証されている、リクエストパラメータがつきのURLからGETしようとすると"Digest: uri mismatch"が発生する。
-リンク先で指摘されているように、mechanize/chain/auth_headers.rbの修正が必要。とりあえず以下の2カ所をuri.pathからuri.request_uriに修正。
#pre{{
        ....
        a_2 = "#{request.method}:#{uri.request_uri}"
        ....
        header << "uri=\"#{uri.request_uri}\", "
        ....
}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS