gpt4 book ai didi

PHP: file_get_contents ('php://input' ) 返回 JSON 消息的字符串

转载 作者:可可西里 更新时间:2023-11-01 12:55:34 25 4
gpt4 key购买 nike

我正在尝试在我的 PHP 应用程序中读取 JSON 消息,这是我的 PHP 代码:

$json = file_get_contents('php://input');
$obj = json_decode($json, TRUE);
echo $obj->{'S3URL'};

当我这样做时,出现以下错误:

Trying to get property of non-object in setImage.php on line 25 (line 25 is the echo $obj->{'S3URL'}; line)

这是对页面请求的请求体:

Request Url: http://localhost:8888/setImage.php
Request Method: POST
Status Code: 200
Params: {
"S3URL": "http://url.com"
}

这是请求 header :

Accept: application/json
Content-Type: application/json
Connection: keep-alive
Origin: chrome-extension: //rest-console-id
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML,

但是,如果我改为回显 $json 变量,我会得到以下信息:

S3URL=http%3A%2F%2Furl.com

因此看起来 file_get_contents('php://input'); 正在将其作为字符串而不是 JSON 读取,这将使解析变得更加困难。

知道为什么它没有作为 JSON 返回,或者我如何才能让它作为 JSON 返回?

最佳答案

您对 json_decode 的使用是创建关联数组,而不是对象。您可以将其视为一个数组,而不是一个对象。如果你想要一个对象,请改用这个:

$obj = json_decode($json);

See the documentation json_decode() 的第二个参数:

assoc When TRUE, returned objects will be converted into associative arrays.

此外,正如 Johannes H. 在评论中指出的那样,echo $json; 的输出首先表明您实际上并未收到 JSON,因此您需要解决这个问题,还有。你问为什么它不是 JSON;在没有看到您如何请求此脚本的情况下,无法确定。

关于PHP: file_get_contents ('php://input' ) 返回 JSON 消息的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com