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

时间:2015-10-03 17:51:55

标签: php guzzle 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/

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

2 个答案:

答案 0 :(得分:1)

您是否尝试直接使用代理选项实例化客户端?

像这样:

{ name: 'daMan', 
  likings: ['bicicle','running','sleeping'], 
  family: [ {name: 'Ted', type: 'son'},{name: "Marga, type:'Wife'}]
}

答案 1 :(得分:1)

$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;

我认为它是客户端配置,而不是请求参数。