连接后,PHP cURL代码502来自代理,但它适用于其他网站

连接后,PHP cURL代码502来自代理,但它适用于其他网站,php,http,curl,proxy,Php,Http,Curl,Proxy,我正在尝试使用代理连接到HTTP站点(eg)。但我不知道为什么它适用于像谷歌(https)这样的网站,而不适用于http网站 $url = 'https://google.com'; // **If I replace google.com by http://www.http2demo.io/ or any http website it send me a 502 error** $proxyauth = 'Flexxa:XWIUHY'; $proxy = '45.77.161.17'; $

我正在尝试使用代理连接到HTTP站点(eg)。但我不知道为什么它适用于像谷歌(https)这样的网站,而不适用于http网站

$url = 'https://google.com'; // **If I replace google.com by http://www.http2demo.io/ or any http website it send me a 502 error**
$proxyauth = 'Flexxa:XWIUHY';
$proxy = '45.77.161.17';
$proxyPort = '505';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
//proxy suport
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxyPort);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
//https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/27.0.1453.94 Safari/537.36");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);

$output = curl_exec($ch);   

if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors';
}

echo $output;

curl_close($ch);
?>

第一个有效,但另一个无效

这是否回答了您的问题?我假设,因为您试图访问一个名为“http2demo.io”的站点,所以您希望连接到HTTP2.0。此协议需要HTTPS,并且还需要在客户端进行配置,如副本中所述。此外,由于您的组合中有一个代理,我希望它必须专门支持HTTP 2.0。您的代理不允许HTTP站点(端口80)通过
CURLOPT_HTTPPROXYTUNNEL
。尝试删除该选项…如果我删除
CURLOPT\u HTTPPROXYTUNNEL
我会收到此消息“找不到502坏网关主机或连接失败”