Php Guzzle Laravel-使用POST请求登录

Php Guzzle Laravel-使用POST请求登录,php,json,laravel,Php,Json,Laravel,我试图做的是登录到外部API并检索JSON文件。为此,我在拉雷维尔使用Guzzle 我已设置了一个控制器来执行此操作: $client = new Client([ 'base_uri' => 'https://www.space-track.org', 'timeout' => 2.0, ]); 我使用以下方式访问JSON文件: $response = $client->request('GET', '/basicspace

我试图做的是登录到外部API并检索JSON文件。为此,我在拉雷维尔使用Guzzle

我已设置了一个控制器来执行此操作:

   $client = new Client([
       'base_uri' => 'https://www.space-track.org',
       'timeout'  => 2.0,
   ]);
我使用以下方式访问JSON文件:

    $response = $client->request('GET', '/basicspacedata/query/class/boxscore');
为了获得JSON文件,我需要登录到API。API教程告诉我:

 Login by sending a HTTP POST request ('identity=your_username&password=your_password') to: https://www.space-track.org/ajaxauth/login
我无法使用Guzzle登录API。我尝试了以下几个Guzzle教程,并使用了“auth”数组,但没有一个是有效的


基本上,我无法使用Guzzle登录API。

这里有一个基本流程应该可以工作

//初始化客户端
$api=新客户端([
'基本uri'=>'https://www.space-track.org',
'cookies'=>true,//必须打开cookies才能使此API工作
]);
//登录
$api->post('ajaxauth/login'[
“表单参数”=>[
'identity'=>'',//使用您的实际用户名
'密码'=>'',//使用您的实际密码
],
]);
//取回
$response=$api->get('basicspacedata/query/class/boxscore/format/json');
//并解码一些数据
$boxscore=json_decode($response->getBody()->getContents());
//和注销
$api->get('ajaxauth/logout');
dd($boxscore);
现在,如果这不是一个一次性的请求,并且您计划广泛使用这个API,那么您可以将这个“丑陋”封装在您自己的服务类中,该服务类公开一个有意义的内部API,允许您按照

$spaceTrack=new App\Services\spaceTrack\Client();
$boxscore=$spaceTrack->getBoxscore();
dd($boxscore);

为什么不发布登录参数,比如
$client->post('https://www.space-track.org/ajaxauth/login?identity=your_username&password=your_password)
,然后获取令牌或类似的东西。