如何在Symfony HttpClient组件的CurlHttpClient中添加具有IP /端口和用户名/密码的代理?

时间:2019-06-05 14:43:38

标签: php symfony httpclient symfony4 php-curl

我正在使用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组件。

2 个答案:

答案 0 :(得分:0)

您需要指定协议(例如socks5socks4等)

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',
]);

它很好