伙计们。
我编写了一个脚本,使用代理从某些链接中获取内容。 如果您知道原因并提出建议,请帮助我。 谢谢
当我运行以下代码时,它将显示400错误代码。
$linkCheck = "https://www.uwgc.org/give/donor-networks/step-up-program/2016/03/14/oh-the-places-she's-going";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $linkCheck);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, $workingProxy['port']);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_PROXY, $workingProxy['ip']);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $workingProxy['username'].':'.$workingProxy['password']);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error_report= curl_getinfo($ch);
curl_close($ch);
if($httpcode != 200){
echo '<pre>' . $httpcode .'</pre>' ;
return null;
}else{
return $data;
}
预期行为:
获取给定链接的正确内容。
答案 0 :(得分:0)
@每个人。 感谢您的提示。
最后,我的代码几乎可以在以下配置下工作。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$linkCheck);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,$fetchTimeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $fetchTimeout);
顺便说一句,我还有另一个问题。 如果网址中包含诸如重音符号(/clasificación)之类的奇数字符,则它不会出现致命错误。
当我使用/ clasificaci%C3%B3n而不是上面的名称时,它将再次起作用。 所以,这是我的问题。 如何更改奇数字符串,以便将其设置为有效的网址。
非常感谢。