このサンプルの処理では、iPhone である必要は無いのですがあくまで サンプルとして処理されています。実際は、Seesaa の自分のブログを 呼び出して、iPhone 用のページが返される事を確認しました post メソッドは元々のメソッドのコードからファイルアップロード の機能を省いてヘッダーを渡すようにしただけです。 post_form は、元々ヘツダーを渡せるのですが、プライベートメソッド なのでこのような使い方になります。
#!/usr/local/bin/ruby print "Content-type: text/html; Charset=shift_jis\n\n" # エラーを出力する為の処理 $stderr = $stdout # Ruby 本体をWEBアプリとして使う時の為の定義 # ( ここでは使っていません ) require "cgi" cgi = CGI.new require 'uri' # さくらインターネットで WWW::Mechanize をインストールして # 利用するのに必要だった定義 ENV['GEM_HOME']="/home/lightbox/gems" $LOAD_PATH.push('/home/lightbox/lib') require 'rubygems' require 'mechanize' # ********************************************************** # 処理本体 # ********************************************************** # WWW::Mechanize の post メソッドをオーバーライド # ※ ファイルのアップロードは使わないので削除しています # ※ カスタムヘッダーを渡せるようにしています class WWW::Mechanize def post(url, query= {}, headers = {}) node = {} # Create a fake form class << node def search(*args); []; end end node['method'] = 'POST' node['enctype'] = 'application/x-www-form-urlencoded' form = Form.new(node) query.each { |k,v| form.fields << Form::Field.new(k.to_s,v) } post_form(url, form, headers) end end agent = WWW::Mechanize.new # 呼び出しタイムアウト設定 # ( \ で継続行 ) agent.open_timeout \ = 60 * 10 # ( = 演算子で継続行 ) agent.read_timeout = 60 * 10 url = 'WEBアプリケーションのURL' fld = {} fld['SendButton'] = '一括' fld['CommandField'] = 'パスワード' fld['mid'] = 'CprogBase' custom_header = {} custom_header['User-Agent'] = 'Mozilla/5.0 ' \ '(iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us)' \ ' AppleWebKit/528.18 ' \ '(KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16' page = agent.post(url, fld, custom_header) print "ok"
関連する記事 Ruby : 自作WEBアプリケーションの呼び出しに使って機能を拡張する
|
【Rubyの最新記事】
- Ruby(mechanize) で PHP からの JSON 経由でデータベース(MySQL)の値を取得
- Ruby(Mechanize) : ココログギャラリー名の変更
- Ruby : Seesaa の設定ページの「最新の情報に更新」ボタンを Ruby の mechanize で押す
- Ruby : 日本語の正規表現はバイナリで
- Ruby : 自作WEBアプリケーションの呼び出しに使って機能を拡張する
- Ruby : 根本的なエラー処理 / 標準エラー出力の出力先を標準出力に変更する
- Ruby : ココログのアクセス解析ページの当日データの取得
- Ruby : メソッド定義で URLエンコード
- Ruby : Seesaa の複数のブログの現在の訪問者数とページビューの一覧
- Ruby : ココログギャラリーの設定から、Ruby の基本処理
- Ruby : Seesaa のブログ設定画面で、Form選択からコンボボックス、ラジオボタン、チェックボックスの設定