我正在使用Symfony HttpClient组件,因此有必要将其与代理一起使用。使用端口打开代理,实例化CurlHttpClient类时,我可以轻松地使用默认配置进行配置,但无法为私有代理设置用户名和密码
默认配置示例:
use Symfony\Component\HttpClient\CurlHttpClient;
$httpClient = new CurlHttpClient([
'http_version' => '2.0',
'proxy' => 'x.xx.xxx.xxx:8000',
]);
我尝试在其他选项上添加其他配置,然后尝试其他组合,但找不到正确的方法。
使用简单的PHP和cURL,一切正常。
请帮助我,使用私有代理配置Symfony HttpClient组件。
答案 0 :(得分:0)
您需要指定协议(例如socks5
,socks4
等)
use Symfony\Component\HttpClient\CurlHttpClient;
$httpClient = new CurlHttpClient([
'http_version' => '2.0',
'proxy' => 'socks5://username:password@127.0.0.1:9999',
]);
dump($httpClient->request('GET', 'https://api.ipify.org?format=json')->getContent());
答案 1 :(得分:0)
我找到了解决方案,应该以以下格式指定代理的数据:
$httpClient = new CurlHttpClient([
'http_version' => '2.0',
'proxy' => 'user:password@ip:port',
]);
它很好