CURL:连接后来自代理的代码 0?

2024-01-29

我正在尝试测试下面的功能,但每次我尝试使用任何类型的代理IP(我已经尝试过15现在) - 我通常会遇到同样的错误:

Received HTTP code 0 from proxy after CONNECT 

这是这个函数,有什么问题吗?这可能只是我正在使用的代理,但我现在已经尝试了几次。

function getPage($proxy, $url, $referer, $agent, $header, $timeout) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);

    $result['EXE'] = curl_exec($ch);
    $result['INF'] = curl_getinfo($ch);
    $result['ERR'] = curl_error($ch);

    curl_close($ch);

    return $result;
}

总的来说,我还能改进吗?

我感谢所有的帮助。

Update

当我提交此内容时,我尝试了另一个代理,它成功了!

另一个问题仍然存在,我该如何改进上述内容。执行大约需要 3-4 秒,我可以做任何事情,还是这太少了?


我知道你有点回答了你的第一个问题,但是代码0不是有效的 http 状态代码。它们都应以 1(信息性)、2(成功)、3(重定向)、4(客户端错误)或 5(服务器错误)开头。如果有人知道为什么你会得到这个代码,我会非常感兴趣。正在搜索libcurl 站点 http://curl.haxx.se/没有提出任何事情。

(如果您有兴趣,可以在这里查看更详细的信息:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlt http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)


对于第二个问题,我认为你需要找到最长的操作在哪里。microtime()函数在这里可能对您有用。这microtime() 的文档 http://www.php.net/manual/en/function.microtime.php有一些示例脚本可以帮助您使用计时器。

我怀疑大部分 3-4 秒可能是在等待通过代理获取响应curl_exe($ch).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CURL:连接后来自代理的代码 0? 的相关文章

随机推荐