【发布时间】:2016-12-05 23:25:46
【问题描述】:
我正在使用 Guzzle 获取 HTTP 响应。如果我这样做:
$response = $res->getBody();
我得到一个带有“电子邮件”作为属性之一的对象。但如果我这样做:
$email = $res->getBody()->email;
或
$email = $response->email
我收到“电子邮件没有价值”错误。我错过了什么??如何访问响应对象中的特定属性?
【问题讨论】:
我正在使用 Guzzle 获取 HTTP 响应。如果我这样做:
$response = $res->getBody();
我得到一个带有“电子邮件”作为属性之一的对象。但如果我这样做:
$email = $res->getBody()->email;
或
$email = $response->email
我收到“电子邮件没有价值”错误。我错过了什么??如何访问响应对象中的特定属性?
【问题讨论】:
getBody 方法返回一个StreamInterface 的实例。你首先需要retrieve the contents of the response:
$response = (string) $res->getBody();
只有这样你才能解码 json 有效载荷:
$json = json_decode($response);
$email = $json->email;
【讨论】:
json_decode($res->getBody())->email