当前位置: 首页 > 面试题库 >

在PHP中从JSON POST读取HTTP请求正文时出现问题

潘彦
2023-03-14
问题内容

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

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版本JSON对象进行交互的方式吗?谢谢!


问题答案:

感谢其他人的投入。原来我只需要

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

其中的第二个参数以json_decode数组形式返回对象。

希望这对别人有帮助!



 类似资料:
  • 问题内容: 我正在写一个注册为Webhook端点的脚本。我知道它已成功注册,因为我正在将每个请求的标头写入服务器日志。这是一个示例: 我已经注册的API是将JSON对象发布到脚本中,我想使用PHP解析该对象。从请求标头可以看到,有一个不错的大胖JSON对象正在等待解析。看起来很简单,但事实并非如此。 最初,我尝试使用或,但是由于数据不在数组中,因此我不确定如何访问数据。 我试过使用和不使用,但没有

  • 我试图分块读取输入流并写入文件以避免内存问题,我接收json格式的数据,并使用以下代码写入文件。 我的问题是,大多数json都写得很好,虽然其中一些包含损坏的数据,但我不确定我是否正确地将CharBuffer与BufferedReader一起使用,我观察到的另一件事是,对于少量数据,它正确地将CharBuffer写入文件,当我从服务器接收到更大的数据(大约2MB的输入流-不是很大)时,我通常会遇到

  • 本文向大家介绍PHP实现取得HTTP请求的原文,包括了PHP实现取得HTTP请求的原文的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现取得HTTP请求的原文的方法,具体步骤如下: 1. 取得请求行:Method、URI、协议 可以从超级变量$_SERVER中获得,三个变量的值如下: 2. 取得所有Header PHP有个内置函数getallheader(),是apache_req

  • 问题内容: type ValidationModel struct { Name string Email string Password string } 首先,我使用govalidator验证请求正文。 在验证了请求之后,我再次将请求主体解码为用户结构,但已使用validationModel读取了请求主体一次,因此当我尝试再次将其解码为用户时,它没有提供任何值。 我在这里可以想到两种解决方案:

  • 我正在实现一个从s3获取文件、读取并删除它的路由。问题是删除后继续搜索文件并进入错误,我不明白为什么路由不停止。 这是我的