*目次 [#b98c24f2]
#contents

*WWW:Mechanize [#fbf623f7]
** 参考情報 [#pd745a2f]
-[[RubyForge: WWW::Mechanize: Project Info:http://rubyforge.org/projects/mechanize/]]…公式。
-[[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]]
*Tips [#de56f839]
**URIエンコード・デコードする [#ta4642c5]
-[[Ruby On Rails ピチカート街道 - rubyでURLエンコード -:http://rubist.blog77.fc2.com/blog-entry-49.html]]
***エンコード [#a7a86457]
#pre{{
require 'uri'
p URI.escape('http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Rubyリファレンスマニュアル')
=> "http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Ruby%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB"
}}
***デコード [#b16c4a7d]
#pre{{
require 'uri'
p URI.unescape('http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Ruby%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB')

=> "http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Rubyリファレンスマニュアル"
}}
**Digest認証でアクセスする [#ye8ccdee]
-net/httpもopen-uriも対応してないのか(?)
-[[RubyForge: WWW::Mechanize: Project Info:http://rubyforge.org/projects/mechanize/]]を使うのがいいらしい…

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS