【发布时间】:2023-03-10 10:05:01
【问题描述】:
我尝试请求 URL 宽度 cURL,但没有答案,并且选项 CURLOPT_CONNECTTIMEOUT 不起作用。
我根本没有答案......我想服务器没有回答。我尝试使用名为 Restlet Client - REST API Testing 的 Chrome 插件来测试 URL,但也没有答案。
private function curlInterrogation(){
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, WS_L2_URL.$this->code);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERPWD, WS_USER . ':' . WS_PASS);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLINFO_HEADER_OUT, false );
$result = curl_exec($ch);
curl_close($ch);
return $result;
} catch (Exception $ex) {
Noyau::setError('Curl error #%d: %s', $e->getCode(), $e->getMessage() );
return array();
}
}
每次我运行我的函数时,我都会冻结我的域浏览器(我可以在其他网站上浏览),我必须重新启动我的浏览器。
使用 CURLOPT_CONNECTTIMEOUT 选项,执行是否应该停止并返回它无法连接到服务器?
感谢您的帮助
【问题讨论】:
-
你确定 curl_exec 是执行被冻结的地方吗?如果返回的数据太大,处理它们可能需要一些时间,并且也会冻结 chrome 插件。
-
您为什么不尝试使用 Postman 应用程序而不是 Chrome 中的 Advanced Rest Client?这是一个更好的工具来查看您的请求发生了什么,并且如果响应需要很长时间才能到达,它不会冻结。
-
是的,我确定 curl_exec 是执行冻结的地方。当我评论它时,没有冻结...
-
我也必须告知,当服务器给出答案时,一切都像魅力一样。我的问题是只有当服务器没有回答时......
-
@Fabiano 如你所说,我尝试使用 postam。同样的问题,服务器没有响应,超时不起作用......