卷曲强制超时



我正在尝试使用 curl 测试我的超时条件并强制网站超时。这是我的卷发设置:

curl_setopt_array($curl, array(
	CURLOPT_URL => "https://app.sample.com/api/abc/changelogs?last=3",
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_CONNECTTIMEOUT => 0,
	CURLOPT_TIMEOUT => 0,
	CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	CURLOPT_CUSTOMREQUEST => "GET",
	CURLOPT_HTTPHEADER => array(
	"cache-control: no-cache"
	),
));

即使我将连接超时和超时更改为 0/0.000001,它仍然不会超时。任何帮助都会很好。

根据文档,CURLOPT_CONNECTTIMEOUT是一个整数:

尝试连接时等待的秒数。使用 0 无限期等待。

如果你有 cURL>= 7.16.2 和 PHP>= 5.2.3,你可以使用CURLOPT_CONNECTTIMEOUT_MS

尝试连接时等待的毫秒数。使用 0 无限期等待。如果 libcurl 构建为使用标准系统名称解析器,则连接部分仍将使用全秒分辨率进行超时,允许的最小超时时间为一秒。

但是,您不应将其与CURLOPT_TIMEOUTCURLOPT_TIMEOUT_MS混淆:

CURLOPT_TIMEOUT- 允许 cURL 函数执行的最大秒数。CURLOPT_TIMEOUT_MS- 允许 cURL 函数执行的最大毫秒数。如果 libcurl 构建为使用标准系统名称解析器,则连接部分仍将使用全秒分辨率进行超时,允许的最小超时时间为一秒。

明显的区别是,如果没有连接,CURLOPT_CONNECTTIMEOUT脚本死亡前超时;而CURLOPT_TIMEOUT在定义的秒数后终止脚本。

相关内容

  • 没有找到相关文章

最新更新