1

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

4

2 回答 2

2

您需要指定协议(例如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());
于 2019-06-06T10:47:38.503 回答
1

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

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

没问题

于 2019-06-06T13:14:56.997 回答