Как использовать прокси-аутентификацию с Goutte?
У меня есть следующий код, но он всегда возвращает код состояния 407
HTTP.
$url = 'http://whatismyip.org';
$client = new Client();
$options = array(
'proxy' => array(
'http' => 'tcp://@x.x.x.x:8010',
),
'auth' => array('d80fe9ebasab73d21a4', '', 'basic')
);
$crawler = $client->request('GET', $url, $options);
$status = $client->getResponse()->getStatus();
echo $status; // 407
Я использую Goutte с Guzzle 6. Я начал пробовать установить прокси с setDefaultOption
, но этот метод устарел.
Мое имя пользователя и пустой пароль определенно корректны, поскольку он работает с curl
в командной строке:
curl -U d80fe9ebasab73d21a4: -vx x.x.x.x:8010 http://whatismyip.org/
Я потратил несколько часов на это, и я был бы признателен за любую помощь!
Ответы
Ответ 1
Вы пытались создать экземпляр своего клиента с параметрами прокси напрямую?
Вот так:
$url = 'http://whatismyip.org';
$client = new Client($url, array(
'version' => 'v1.1',
'request.options' => array(
'auth' => array('d80fe9ebasab73d21a4', '', 'Basic'),
'proxy' => 'tcp://@x.x.x.x:8010'
)
));
$crawler = $client->request('GET', $url);
$status = $client->getResponse()->getStatus();
echo $status; // 407
Ответ 2
$config = [
'proxy' => [
'http' => 'xx.xx.xx.xx:8080'
]
];
$client = new Client($config);
$client->setAuth('username', 'password', 'basic');
$crawler = $client->request('GET', $url);
$status = $client->getResponse()->getStatus();
echo $status;
Я предполагаю, что это клиентская конфигурация, а не параметр запроса.