php - 从 PHP 中的 JSON POST 读取 HTTP 请求正文的问题

我正在编写一个注册为 webhook 端点的脚本。我知道它已成功注册,因为我正在将每个请求的 header 写入我的服务器日志。这是一个示例:

Content-Type: text/xml; charset=UTF-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: =={obfuscated}== 
Content-Length: 1918

我注册的 API 将一个 JSON 对象发布到我的脚本中,我想使用 PHP 解析该对象。从请求头中可以看到,有一个漂亮的大 JSON 对象等待解析。这似乎很简单,但事实并非如此。

起初我尝试使用 $_POST['json'] 或只是 $_POST 但由于数据不在数组中,我不太确定如何访问它。

我试过使用 file_get_contents('php://input')fopen('php://input', 'r') 有和没有json_decode() 但没有运气。我无法使用 http_get_request_body(),因为我所在的服务器没有 PECL,这是我无法控制的。

还有其他方法可以与我缺少的 POST-ed JSON 对象进行交互吗?谢谢!

最佳答案

原来我只是需要

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); //convert JSON into array

json_decode 中的第二个参数将对象作为数组返回。

https://stackoverflow.com/questions/7047870/

相关文章:

wcf - 在 wcf 中返回原始 json(字符串)

java - 更新 JSONObject 中的元素

jquery - 如何获取 JSON 键和值?

json - 如何从 nginx 生成 JSON 日志?

android - 如何在Android中解析json字符串?

ios - Swift读取远程通知的userInfo

java - 在 Java 中将 JSON 转换为 XML

c# - 判断 Json 结果是对象还是数组

javascript - 如何从 AJAX 调用中返回一个数组?

c# - EF 4.1 - 代码优先 - JSON 循环引用序列化错误