使用 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中文网其他相关文章!