タグ: #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日 | 
