当前位置: 首页 > 知识库问答 >
问题:

Guzzle 6:不再有响应的json()方法

刁远
2023-03-14

前情提要5.3:

$response = $client->get('http://httpbin.org/get');
$array = $response->json(); // Yoohoo
var_dump($array[0]['origin']);

我可以很容易地从JSON响应中获得PHP数组。现在在狂饮6,我不知道怎么做。似乎不再有json()方法了。我(快速)阅读了最新版本的文档,没有发现任何关于JSON响应的信息。我想我错过了一些东西,也许有一个新的概念我不明白(或者我没有正确阅读)。

这(下面)条新路是唯一的路吗?

$response = $client->get('http://httpbin.org/get');
$array = json_decode($response->getBody()->getContents(), true); // :'(
var_dump($array[0]['origin']);

或者有帮手之类的吗?

共有3个答案

凌嘉勋
2023-03-14

我使用$response-

汪永春
2023-03-14

您切换到:

json_decode($response->getBody(), true)

而不是另一个注释,如果您希望它完全像以前一样工作,以便获得数组而不是对象。

子车青青
2023-03-14

我使用json_decode

我怀疑这可能是PSR-7合规性的牺牲品。

 类似资料:
  • 使用Guzzle,我正在使用JSON格式的一些外部API,通常我获取数据 $data = $request- 但是我无法从这个不同的api中获取数据。数据似乎没有出现在“响应体”中。 这个api调用有效:https://i.ibb.co/80Yk6dx/Screenshot-2.png 这不起作用:https://i.ibb.co/C239ghy/Screenshot-3.png

  • 我不确定,如果我遗漏了什么,但在谷歌上也找不到。我正在研究Jmeter的一些特性。我也用过邮递员。我们有API POST请求,它返回JSON响应。 在从Postman访问API时,我得到了“JSON”响应。(即无问题)和API触发我的服务。 现在,如果从Jmeter命中。如果200和我的服务也触发,则响应。但作为回应,我得到了一些代码或键,而不是JSON值。 就像'e5e9e97a9ba2144b

  • 我正在使用Volley向API发出GET请求: 预期的JSON对象响应很大(可能高达500 KB)。我无法在日志中看到完整的响应。仅显示前50行左右。我还得到了info: BasicNetwork.log慢速请求:请求的HTTP响应= 这意味着请求需要超过3000毫秒。 尝试过的事情: 我已经在手机的开发者选项中将记录器缓冲区大小增加到1M。 原因可能是什么?当它很大的时候,响应是大块发送的吗?如

  • 我用java制作了一个REST API,我有以下DTO。 在我的API类中,我从sql获取上述DTO的数据,并使用以下代码返回响应: 所以我的疑虑是: 为什么对象列表在响应中排在第三位,尽管我在DTO中声明了它的最后一位? 为什么isTypeTrue和isTypeSpecial在输出中显示为TypeTrue和TypeSpecial? 尽管我首先声明了isTypeSpecial,但为什么isType

  • 我对Spring很陌生。我有一个在Spring中编写的REST api,但我不知道如何使用自定义http响应代码返回JSON响应。 我返回一个JSON响应,如下所示: 但它总是显示200个http ok状态代码。 如何可能在void函数中返回JSON响应和自定义HTTP代码?