Laravel Guzzle Basic Auth成功返回空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel Guzzle Basic Auth成功返回空相关的知识,希望对你有一定的参考价值。

下面是我的代码。成功进行授权后,$ this-> token将为空值。当我使用php Curl尝试此功能时,它工作正常,没有问题。

可能是什么问题?

顺便说一句,如果我尝试输入错误的密码或用户名,则会报错。

  $client = new GuzzleHttpClient();
  $response = $client->get($this->url . "/auth/getToken", [
      'auth' => [
        'myuser',
        'mypassword'
      ]
  ]); 
$this->token = $response;
答案

基于此代码示例,$this->token将是PsrHttpMessageResponseInterface的实例,其实现将包含数组,整数和流资源。取决于后续代码中如何使用它,基于PHP本身如何尝试对其进行强制转换,它可能显示为“空值”。

如果我们假设响应主体的全部内容是所需的身份验证代码(格式不正确的json),我们可以将示例修改为:

$client = new GuzzleHttpClient();
$response = $client->get($this->url . "/auth/getToken", [
    'auth' => [
    'myuser',
    'mypassword'
  ]
]); 
$this->token = $response->getBody()->__toString();
// the __toString() is written to make PHP's casting explicit

或:

$client = new GuzzleHttpClient();
$this->token = $client->get($this->url . "/auth/getToken", [
    'auth' => [
    'myuser',
    'mypassword'
  ]
])
    ->getBody()
    ->__toString();
// the __toString() is written to make PHP's casting explicit

以上是关于Laravel Guzzle Basic Auth成功返回空的主要内容,如果未能解决你的问题,请参考以下文章

Laravel + Guzzle + MailChimp - 400 错误请求

Laravel 5.6模拟Guzzle响应

Laravel - 无法处理 RequestException(Guzzle + MailChimp)

Laravel Guzzle 使用踩雷及指南

如何使用 Laravel 5.2 + Guzzle 6 存储 JWT 并授予用户访问权限

使用 PHPUnit 在 Laravel 控制器中进行单元测试 Guzzle