phpcurl错误处理未生效

问题描述 投票:0回答:1

这是我的PHP代码

`**

/* some php code - top */

/* curl request logic start */

$ch = curl_init("https://api.abc.com/xyz");
$response = curl_exec($ch);`
if (curl_errno($ch))
{
    $error_msg = curl_error($ch);
}
curl_close($ch);

if (isset($error_msg))
{
    echo 'Curl error: ' . $error_msg;
}
else
{
    echo $response;
}

/* curl request logic end */

/* some php code - bottom */

?>**`

我的问题是,如果“https://api.abc.com/xyz”的服务器关闭/无法访问,整个 php 脚本执行就会冻结。

我想要的是,即使api“https://api.abc.com/xyz”关闭,/*一些php代码-顶部/和/一些php代码-底部*/指示的php代码应该被执行并且页面不应该完全挂起/冻结。

任何建议将不胜感激......!

谢谢你

我尝试过curl错误处理,但似乎不起作用。

php curl
1个回答
0
投票

您可以通过以下方式设置卷曲连接和响应请求的超时:

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //connect timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 6); //timeout wait response in seconds
© www.soinside.com 2019 - 2024. All rights reserved.