如何在 Symfony HttpClient 组件的 CurlHttpClient 中使用 IP/port 和 username/password 添加代理?

How can I add proxy with IP/port and username/password in CurlHttpClient on Symfony HttpClient Component?

我正在使用 Symfony HttpClient 组件,因此有必要将其与代理一起使用。使用端口开启代理,我在实例化CurlHttpClient时可以使用默认配置轻松配置class,但我无法设置私有代理的用户名和密码

默认配置示例:

use Symfony\Component\HttpClient\CurlHttpClient;

$httpClient = new CurlHttpClient([
    'http_version' => '2.0',
    'proxy' => 'x.xx.xxx.xxx:8000',
]);

我尝试在额外选项上添加额外的配置,并尝试其他组合,但找不到正确的方法。

使用纯 PHP 和 cURL 一切正常。

请帮我用私有代理配置 Symfony HttpClient 组件。

您需要指定协议(例如 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());

我找到了解决方案,代理的数据应按以下格式指定:

$httpClient = new CurlHttpClient([
    'http_version' => '2.0',
    'proxy' => 'user:password@ip:port',
]);

还好