08/09/14 22:13:20
LWP::UserAgentとHTTP::Requestで簡単なhttpクライアントを作っています。
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET => 'URLリンク(ja.wikipedia.org)');
$req->push_header('User-Agent' => 'Mozilla/4.0');
$ua->request($req);
を実行すると、パケットキャプチャの結果
GET /wiki/Perl HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: ja.wikipedia.org
User-Agent: Mozilla/4.0
という設定していない"TE"を含むリクエストを投げつけています。
この"TE"を含まないリクエストを投げたいときにはどのようにするのが簡単で自然でしょうか?
(パケットキャプチャをする都合上、圧縮はして欲しくないです)
ソースを読んだところ、LWP::Protocol::httpにてSendTE => 1という値を設定していて、
巡り巡ってNET::HTTP::Methodsでその値を参照して有効(1)ならば
push(@h2, "TE: deflate,gzip;q=0.3");
push(@connection, "TE");
をするという処理をしていました。
URLリンク(questionbox.jp.msn.com)
には
>LWP::Protocol::httpモジュールのソースファイル40行目付近を改造(SendTE => 1を0)し
とありますが、それだけはしたくないです・・・