PHP: 2008年8月アーカイブ

PEARのHTTP_Requestはhttp通信が簡単に行える使い勝手のいいクラスなのでよく使いますが、レスポンスが保証されていないWeb APIとのやり取りなんかでタイムアウト時間を設定したいことがあります。

そんな時にtimeoutオプションを指定してみるのですが、時間通りストップしたりしなかったりと動作が今一つ不安定でした。

Pear パッケージ HTTP_Request - どうにかなるBLOG

こんな記事も見かけたりして、これはいよいよソースに手を加えないとだめかな・・・と思っていたところ、PEAR公式マニュアルを眺めていたら、readTimeout という知らなかったオプションを発見。

Docs For Class HTTP_Request

require_once 'HTTP/Request.php';

$url = "http://www.example.com/";

$option = array(
	"timeout" => 10, // 接続Timeout秒数
	"readTimeout" => 
	array(10, 0) // ソケット読み書きTimeout秒数
);

$http = new HTTP_Request($url, $option);

$http->sendRequest();

$body = $http->getResponseBody();

print_r($body);

おぉ、なんだか期待していたような動き!

それぞれのオプションについては、

  • timeout 通信先とのコネクション確立までのタイムアウト設定(秒
  • readTimeout 接続後のパケットやり取りする時間のタイムアウト設定(秒、ミリ秒)

ということと理解しておきました。

やっぱりマニュアルはちゃんと読まないとな。

このアーカイブについて

このページには、2008年8月以降に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のアーカイブはPHP: 2008年3月です。

次のアーカイブはPHP: 2009年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

RSSフィード

  • 購読する

いろいろ

あわせて読みたい

フィードメーター - ポップフライ

seo

Powered by Movable Type 4.01