当服务器返回 4xx 和 5xx 状态码时,我想处理来自 Guzzle 的错误。我提出这样的要求:
$client = $this->getGuzzleClient();
$request = $client->post($url, $headers, $value);
try {
$response = $request->send();
return $response->getBody();
} catch (\Exception $e) {
// How can I get the response body?
}
$e->getMessage
返回代码信息,但不返回 HTTP 响应的正文。如何获取响应正文?
原文由 domos 发布,翻译遵循 CC BY-SA 4.0 许可协议
狂饮 3.x
根据 文档,您可以捕获适当的异常类型(
ClientErrorResponseException
用于 4xx 错误)并调用其getResponse()
方法来获取响应对象,然后调用getBody()
那:将
true
传递给getBody
函数表示您希望将响应正文作为字符串获取。否则你会得到它作为类的实例Guzzle\Http\EntityBody
。