Guzzle HTTP客户端身份验证失败

时间:2015-02-25 17:22:54

标签: api authentication client authorization guzzle

我正在开发一个需要调用API来获取json响应的项目​​,但是Guzzle客户端身份验证无效。它总是重定向到登录页面。 “nasa”是数据库。 这是我的代码:

<?php
require_once '../composer/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
    'base_url' => ['http://fedview.bfountain.com/{datasource}/', ['datasource' => 'nasa']]]);
$response = $client->get('service/sbapp/goalByAgency', ['auth' =>  ['username', 'password']]);
echo $response->getBody();
?>

我试过了:

$response = $client->get('login.do?uname=username&passcode=password');

它可以成功登录。

任何人都可以帮我这个吗? (我正在使用Guzzle 5)THX!

1 个答案:

答案 0 :(得分:0)

以下是为什么 - 我将不得不为您排除其余故障的原因。

1)echo $ response-&gt; getBody(); //打印出登录页面&#34;它总是重定向到登录页面&#34;

2)$ response = $ client-&gt; get(&#39; service / sbapp / goalByAgency&#39;,[&#39; auth&#39; =&gt; [&#39;用户名&#39;, &#39;密码&#39;]]); //您的$ response是一个登录页面,因为您询问$ client-&gt;获取登录页面或验证页面

3)您需要为$ client成功进行身份验证 4)然后使用$ client通过POST方法请求数据(你错过了这一步)

请参阅我的其他帖子:How can I use Guzzle to send a POST request in JSON?

重做你的代码。你走在正确的轨道上。