Php 如何强制Guzzle返回JSON响应而不是完整消息?

Php 如何强制Guzzle返回JSON响应而不是完整消息?,php,request,guzzle,Php,Request,Guzzle,当我使用Guzzle发送请求时,它会返回一条完整的错误消息,而不会解析内部的JSON。下面是它的外观: “”“客户端错误:POST http://someurl.com导致了 409冲突响应:\n{\r\n“错误”:[\r\n 潜在客户已在此活动中“\r\n]\r\n}\n” 当我通过邮递员发送相同的请求时,它确实返回正确解析的响应消息 我怎样才能让Guzzle只返回消息,而不是完整的响应 不清楚你是如何得到上面的字符串的。看起来像是Guzzle的异常转换为字符串。顺便说一句,字符串包含的数据

当我使用Guzzle发送请求时,它会返回一条完整的错误消息,而不会解析内部的JSON。下面是它的外观:

“”“客户端错误:
POST
http://someurl.com
导致了
409冲突
响应:\n{\r\n“错误”:[\r\n 潜在客户已在此活动中“\r\n]\r\n}\n”

当我通过邮递员发送相同的请求时,它确实返回正确解析的响应消息


我怎样才能让Guzzle只返回消息,而不是完整的响应

不清楚你是如何得到上面的字符串的。看起来像是Guzzle的异常转换为字符串。顺便说一句,字符串包含的数据与您在Postman中看到的数据相同


只需使用
$response->getBody()->getContents()
as。

遇到与您相同的问题。您必须通过以下方式设置Guzzle调用:

$res = $client->request('POST','contactForm',[
    'http_errors'=>false,
    'headers' => [
        'Accept' => 'application/json'
    ]
]);
这里的关键是'http_errors'=>false行。这将删除错误字符串并简单地返回JSON数据


希望能回答这个问题。

@AlivetoDie这个答案并没有帮助meI看到响应中确实包含来自Postman的JSON。不幸的是,您发布的方法没有帮助:/n那么问题就不清楚了。请用其他详细信息的代码示例更新您的机票。