从 Guzzle 响应访问特定属性?

dan*_*mix 2 php guzzle

我正在使用 Guzzle 来获取 HTTP 响应。如果我这样做:

$response = $res->getBody();
Run Code Online (Sandbox Code Playgroud)

我得到一个带有“电子邮件”作为属性之一的对象。但如果我这样做:

$email = $res->getBody()->email;
Run Code Online (Sandbox Code Playgroud)

或者

$email = $response->email
Run Code Online (Sandbox Code Playgroud)

我收到“电子邮件无价值”错误。我错过了什么??如何访问响应对象中的特定属性?

Fed*_*kun 6

getBody方法返回StreamInterface 的一个实例。您首先需要检索响应的内容

$response = (string) $res->getBody();
Run Code Online (Sandbox Code Playgroud)

只有这样,您才能解码 json 负载:

$json = json_decode($response); 
$email = $json->email;
Run Code Online (Sandbox Code Playgroud)