如何使用Goutte进行代理身份验证?

Abs*_*Abs 10 php goutte guzzle

我有以下代码,但它总是返回407HTTP状态代码.

$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
Run Code Online (Sandbox Code Playgroud)

我正在使用Goutte和Guzzle 6.我开始尝试设置代理,setDefaultOption但这种方法已被弃用.

我的用户名和空白密码肯定是正确的,因为它curl在命令行上使用:

curl -U d80fe9ebasab73d21a4: -vx x.x.x.x:8010 http://whatismyip.org/
Run Code Online (Sandbox Code Playgroud)

我已经花了几个小时在这上面,我将不胜感激任何帮助!

小智 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
Run Code Online (Sandbox Code Playgroud)