« 2008年01月13日 | メイン | 2008年01月15日 »
2008年01月14日
LWP::UserAgent で長いヘッダを受け取る方法
Simple FON Maps を改良していたときに発生した問題。現在の FON Maps では、座標情報を X-Json というヘッダに格納して通信しています。
my $ua = LWP::UserAgent->new(keep_alive => 1);
my $data = $ua->head($url)->header('X-Json');
このコードで概ねデータを取得できていたのですが、たまに、データを取得できていませんでした。
warn($ua->head($url)->status_line);
通信で何らかのエラーが発生している可能性があり、デバッグ用にコードを追加。
500 Line too long (limit is 4096)
どうやら、ヘッダの長さが長すぎるようです。
The "500 Line too long (limit is 4096)" is generated internally in Net::HTTP when one of the header lines of the response are longer than this.
日本語圏では、このエラーに関する対処方法が見つからなかったのですが、公式なメーリングリストで対処方法が記載されていました。
my $ua = LWP::UserAgent->new(keep_alive => 1); push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, MaxLineLength => 16 * 1024);
MaxLineLength に値を追加して解決。データを取得できないときもエラーログに残っていなかったため、気付くのが遅くなりました…。
【関連情報】
・Re: Fw: LWP Problem: Error: 500 Line too long (limit is 4096)
http://www.mail-archive.com/libwww@perl.org/msg03754.html
02:59 | コメント (0) | トラックバック | Programming
反転生活を改善するぞ
たぶん。ということで、昨日(13日)の食事内容です。
昼は、パンを食べました。北海道云々のパン。オーブンとエアコンを同時に利用したら、ブレーカーが落ちました。
夜は、久しぶりに元気寿司で寿司を食べる。はま寿司とおたる寿しが混んでいたため。
起きたら夕方という生活を繰り返しています。
自宅 (昼)
パン
元気寿司 (夜)
寿司