首页 >后端开发 >php教程 >如何访问 Guzzle HTTP v6 中的响应正文以检索 API 令牌?

如何访问 Guzzle HTTP v6 中的响应正文以检索 API 令牌?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-02 03:17:13745浏览

How Do I Access the Response Body in Guzzle HTTP v6 to Retrieve API Tokens?

Guzzle HTTP 如何允许在版本 6 中访问响应正文

使用 PHP 检索 API 令牌

您的目标为您公司的 API 创建一个包装器。要使用 API 进行身份验证,您需要从 POST 请求的响应正文中提取令牌。使用流行的 Guzzle 库,您在访问 Guzzle 响应对象中的令牌时遇到困难。

Guzzle PSR-7 实现

Guzzle 遵循 PSR-7标准,它利用流包装器作为响应主体。这些流包装器使用 PHP 临时流实现,存储响应正文数据。

访问响应正文

要获取完整的响应正文,您可以利用 PHP 的字符串转换运算符:

$contents = (string) $response->getBody();

或者,流的 getContents() 方法可以是使用:

$contents = $response->getBody()->getContents();

这些方法之间的主要区别在于 getContents() 的行为,它仅在第一次调用后返回剩余的内容。后续调用将返回空字符串,除非使用 rewind() 或eek() 调整流位置。

示例代码

 'http://companysub.dev.myapi.com/']);
$response = $client->post('api/v1/auth/', [
    'form_params' => [
        'username' => $user,
        'password' => $password
    ]
]);

// Convert response body to string and decode JSON
$contents = (string) $response->getBody();
$data = json_decode($contents, true);

// Extract token
$token = $data['data']['token'];

获得令牌后,您可以继续使用它进行API认证。

以上是如何访问 Guzzle HTTP v6 中的响应正文以检索 API 令牌?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn