我正在尝试使用PHP中的代理将网站与CURL连接起来。但是我收到“在CONNECT之后从代理接收到HTTP代码400”错误。
这是我用来连接的代码:
<?PHP
$ch = curl_init("https://ipinfo.io/json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_PROXYTYPE, "HTTP");
curl_setopt($ch, CURLOPT_PROXY, "207.154.231.213:8080");
$output = curl_exec($ch);
if(curl_errno($ch))
echo curl_error($ch);
echo $output;
?>
我不知道问题是什么。该代理服务器应该可以正常工作,因为我已经对其进行了检查。
答案 0 :(得分:0)
使用nex代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "https://ipinfo.io/json");
$result=curl_exec($ch);
curl_close($ch);
echo json_decode($result, true);
我建议使用http://docs.guzzlephp.org/ API库,以获得更好的做法
答案 1 :(得分:0)
根据文档curl_setopt,您应该删除CURLOPT_PROXYTYPE
设置(以使用默认的CURLPROXY_HTTP
),或者您需要更改无效的设置
curl_setopt($ch, CURLOPT_PROXYTYPE, "HTTP");
到
curl_setopt($ch, CURLOPT_PROXYTYPE, "CURLPROXY_HTTP");
请注意,类型HTTP
不存在。