我们正在使用网络服务,但有时候,他们没有回应,他们的回复时间太长。
如果超过1秒钟,如何停止cURL?
我试过了:
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
我还试图在我的服务器和webservice之间创建一个“临时页面”:我的服务器调用一个临时页面:
set_time_limit(1);
ini_set('max_execution_time', 1);
这个临时页面用curl调用webservice本身,但仍然没有。如果我的网络服务的执行时间为10秒,我将不得不等待10秒钟。
有什么想法吗?
答案 0 :(得分:6)
有一个最好的解决方案。
请参阅文档:http://www.php.net/manual/en/function.curl-setopt.php
CURLOPT_CONNECTTIMEOUT - 尝试连接时等待的秒数。使用0无限期等待 CURLOPT_TIMEOUT - 允许cURL函数执行的最大秒数 curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT,0);
curl_setopt($ ch,CURLOPT_TIMEOUT,400); //以秒为单位的超时
另外不要忘记放大php脚本自我执行时间:
参数或者set_time_limit(0); //以无穷大为例