当我将超时设置为3000ms时,为什么CURL会在1000ms内超时?

时间:2011-06-02 06:39:06

标签: php curl

在我的一个脚本中,我已经将curl超时设置为CURLOPT_CONNECTTIMEOUT_MS,达到了3000ms,但卷曲时间比之前多了很多,平均为1000ms。为什么这么早就要超时?

2 个答案:

答案 0 :(得分:7)

我相信你看到的超时是CURL操作超时,而不是连接超时。这两者是不同的。

CURLOPT_TIMEOUT(以及CURLOPT_TIMEOUT_MS表示毫秒值)控制CURL连接后工作的超时时间。 CUROPT_CONNECTTIMEOUT(和CUROPT_CONNECTTIMEOUT_MS)控制初始连接的超时(DNS查找,建立连接等)

如果我是对的,那么如果你将CURLOPT_TIMEOUT设置为高于1,你会发现你的超时不会再以1000毫秒的速度跳闸。

答案 1 :(得分:0)

检查CURL和PHP安装的版本。 CURLOPT_CONNECTTIMEOUT_MS在cURL 7.16.2中添加。自PHP 5.2.3起可用。 http://php.net/manual/en/function.curl-setopt.php