2010年 5月 21日 はてなブックマーク -
タグ: #PHP
だいたい、コネクションオープン後のデータリードで時間がかかるはず。(コネションのオープン自体はそんなに時間がかかるはずがないと予想)

ならば、データリード時のタイムアウトは、どこで設定するのか…?ありました!
HTTP_Request のメンバ変数に $_readTimeout というそれっぽいのが!!
コメントを見ると array(seconds, microseconds) と書かれていて、秒数&マイクロ秒数を設定できそう。
Net_Socket のソースを見ると socket_set_timeout をコールして前記の秒数&マイクロ秒数を設定している。
ん、これだ!

結果的に

$option = array(
    ”timeout” => 10,
    ”readTimeout” => array(30, 0),
);
$http = new HTTP_Request(“http://hogehoge.com”, $option);

というコードでいけそうです。

Web系プログラミングにまつわるアレコレ : PEAR の HTTP_Request でタイムアウトしない現象についてのまとめ

PHPでHTTP_Requestを使ってリクエストを行っていて、タイムアウトの指定をしているのにされていない!という時の解決方法です。
「timeout」…接続確立までのタイムアウト
「readTimeout」…接続確立してから応答が返ってくるまでのタイムアウト


2年前 | | 2010年 5月 21日 | このエントリーを含むはてなブックマーク