我如何从guzzle6例外获取身体

时间:2015-09-17 13:03:04

标签: php guzzle guzzle6

所以我有以下代码

    try {
        $response = $client->request('POST', 'http://dev.api.example.com/v1/partners', [
            // params
        ]);
    } catch (ClientException $ex) {
        Debug::dump($ex);
        die;
    }

现在我正在发送用于测试的错误数据,并且api发送了400代码,因为缺少了一些东西,我正在使用try和catch块捕获它。现在我想显示api返回的身体。我试过以下

$ex->getResponse()->getBody()

但它返回的是以下内容。

GuzzleHttp\Psr7\Stream Object
(
    [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #73
    [size:GuzzleHttp\Psr7\Stream:private] => 
    [seekable:GuzzleHttp\Psr7\Stream:private] => 1
    [readable:GuzzleHttp\Psr7\Stream:private] => 1
    [writable:GuzzleHttp\Psr7\Stream:private] => 1
    [uri:GuzzleHttp\Psr7\Stream:private] => php://temp
    [customMetadata:GuzzleHttp\Psr7\Stream:private] => Array
        (
        )

)

虽然api在邮件中发送了这个

{
  "success": false,
  "error": {
    "code": 400,
    "message": "The name has already been taken.<br />The email field is required."
  }
}

1 个答案:

答案 0 :(得分:0)

好的,我已经弄清楚了。您需要做的就是在异常中执行以下操作。

$ EX-&GT; GETRESPONSE() - &GT; getBody() - &GT; getContents()

截至

here

相关问题