ぜろちゃんねるプラス ver.0.6.5 アップデートに関して

httpservice.plの互換性排除のご報告

ぜろちゃんねるプラス利用者各位
2012年06月15日

平素より、ぜろちゃんねるプラスをご利用いただきありがとうございます(言ってみたかっただけ)。

さてさて,堅苦しい文章は書けないので適当に書きます。

今日,「ぜろちゃんねるプラス」半年ぶりのアップデートとなる「ver.0.6.5」をリリースしました。「半年も待たせたのに微妙更新ですみません」と謝りたいところなのですが,実際問題どうにも忙しすぎなので開発をすすめる時間がないというのが現状です。

そんな0.6.5ですが,更新内容の一部として,以下の項目があったのは気づきましたでしょうか。

・httpservice.plを大幅に改造
 詳細については http://zerochplus.sourceforge.jp/announce/0.6.5.html をご覧ください

まさに内容の通りで,0.6.5ではrev.306で大幅に更新された開発版のhttpservice.plを同封しています。

念のためhttpservide.plについて説明しておくと,プラグインやモジュール等が外部のサーバにアクセスする際に,HTTPリクエストを処理させる役割をもったものです。Socketを利用して書かれているため,LWP::UserAgentが入っていないサーバでもHTTPリクエストを処理することができます。

これはぜろちゃんねる(無印)時代から同封されているモジュールで,本来であれば,プラグインなどで外部にアクセスする際には,このモジュールを使用するべきなのです。

実際このモジュールを使っていなかったBE(HS)もどきや地域表示プラグインがLWP::UserAgentが入っていないサーバで動かないという報告がありました。

それを受けて今回大幅な更新に踏み切ったわけです。この更新で,無印に同封されいていたものよりは使いやすくなっていますし,データの処理もモジュール側で行なっているため便利になりました(※個人の感想です)。

で,なんでこんな記事書いてるのかというと,大幅に更新しすぎてプラグインの開発者さんたちに迷惑をかける可能性がでてきたからです。

実際,どのぐらい大幅に更新されたかというと,「下位互換性がなくなるぐらい」の更新です。

なのでいままで「httpservice.pl」をつかって,外部サーバにデータを取りに行くようなプラグインを作ってた人たちは,お手数ですが修正のほどお願いします

新しいhttpservice.plの使い方については,test/plugin/0ch_BE_HS.pl (BeGet l.236のあたり)や test/module/httpservice.pl を読んで,それとなく雰囲気を掴んで頂くか,掲示板にてご連絡ください。

以下にもサンプルとして,基本的な通信の例を書いておきます。URLを引数に渡して,HTTPステータスコードとコンテンツが返り値として返されます。

sub HogeHoge
{
	
	my ( $url ) = @_;
	
	require('./module/httpservice.pl');
	
	my $proxy = HTTPSERVICE->new;
	# URLを指定
	$proxy->setURI($url);
	# UserAgentを設定
	$proxy->setAgent('Mozilla/5.0 UserAgent Test');
	# タイムアウトを設定
	$proxy->setTimeout(3);
	
	# とってくるよ
	$proxy->request();
	
	# HTTPコンテンツ(ヘッダ・ストリーミングは含まれない)
	my $cont = $proxy->getContent();
	# HTTPステータスコード ( 200, 404, etc.)
	my $code = $proxy->getStatus();
	
	return ( $code, $cont );
	

}
▲ httpservice.pl使い方サンプル

なんかいろいろとごめんなさい。


Written by windyakin ★