CURLOPT_TIMEOUT根本不起作用(php)



我正在使用curl并正确设置所有参数(据我所知),但CURLOPT_TIMEOUT被忽略,并允许无限循环。这是我的卷曲请求的配置:

$user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
$options = array(
        CURLOPT_CUSTOMREQUEST => "GET", //set request type post or get
        CURLOPT_POST => false, //set to GET
        CURLOPT_USERAGENT => $user_agent, //set user agent
        CURLOPT_COOKIEFILE => dirname(__FILE__)."/cookie.txt", //set cookie file
        CURLOPT_COOKIEJAR => dirname(__FILE__)."/cookie.txt", //set cookie jar
        CURLOPT_RETURNTRANSFER => true, // return web page
        CURLOPT_SSL_VERIFYPEER, FALSE, //ignore ssl
        CURLOPT_PROXY =>$proxy['ip'],
        CURLOPT_PROXYPORT =>$proxy['port'],
        CURLOPT_HEADER => false, // don't return headers
        CURLOPT_FOLLOWLOCATION => true, // follow redirects
        CURLOPT_ENCODING => "", // handle all encodings
        CURLOPT_AUTOREFERER => true, // set referrer on redirect
        CURLOPT_CONNECTTIMEOUT => 20, // timeout on connect
        CURLOPT_TIMEOUT => 10, // timeout on response
        CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
    );
    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    $err = curl_errno($ch);
    $errmsg = curl_error($ch);
    $header = curl_getinfo($ch);
    curl_close($ch);

我不是最擅长调试的,所以我不确定问题出在哪里。请帮帮我。

curl_setopt($connection,CURLOPT_TIMEOUT,$seconds)应该在curl_exec()函数之前调用。

当我更快地称之为时,它对我不起作用

如果您正在使用CloudFlare,请注意:

企业客户可以将524超时时间增加到6000秒read_ timeout API端点。如果您定期运行HTTP需要超过100秒才能完成的请求(例如大型数据导出),将这些进程移到未代理的子域后面Cloudflare DNS应用程序中的(灰色阴影)。

相关内容

  • 没有找到相关文章

最新更新