SQLの窓

2010年02月06日


Mechanize : クラスのメソッドをオーバライドしてヘッダーを送れるようにしてiPhoneとしてサーバに認識させる

このサンプルの処理では、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 Mechanize
posted by lightbox at 2010-02-06 16:40 | Ruby | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり