cURL + 代理菜鸟在这里,很难。我在尝试通过代理从远程安全服务器检索网页时遇到问题。远程开发人员显然已经正确设置了一切,因此以下命令行指令可以正常工作并返回我们正在寻找的内容:
curl -k --socks5-hostname localhost:xxxx https://hostname/
但是,以下 PHP 不会回显请求的网页。相反,它会回显错误“无法解析主机名”:
$proxy = 'localhost:xxxx';
$url = 'https://hostname/';
//$proxyauth = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
$curl_scraped_page = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error)
echo $error;
elseif ($curl_scraped_page)
echo $curl_scraped_page;
如果把$url改成公共页面,比如google,请求成功,大家开心。
如果有任何改变,则连接需要 SSH 隧道。隧道已打开且正常运行,命令行请求成功证明了这一点。
这里有什么明显的遗漏吗?