从PHP中的JSON POST读取HTTP请求体
我正在写一个脚本,被注册为webhook的端点。 我知道这是成功注册,因为我正在写我的服务器日志的每个请求的标题。 这是一个示例:
Content-Type: text/xml; charset=UTF-8 User-Agent: Jakarta Commons-HttpClient/3.1 Host: =={obfuscated}== Content-Length: 1918
我注册的API是将JSON对象发布到我的脚本,我想用PHPparsing这个对象。 正如你可以从请求头看到的,有一个很大的胖胖的JSON对象正在等待被parsing。 这似乎很直接,但并没有。
起初,我尝试使用$_POST['json']
或只是$_POST
但由于数据不在数组中,我不确定如何访问它。
我尝试过使用file_get_contents('php://input')
和fopen('php://input', 'r')
,但没有使用json_decode()
但没有运气。 我不能使用http_get_request_body()
因为我所在的服务器没有PECL,这是我的控制。
有没有其他的方式来与我所缺less的POST-JSON对象进行交互? 谢谢!
感谢别人的意见。 事实certificate,我只是需要
$inputJSON = file_get_contents('php://input'); $input = json_decode($inputJSON, TRUE); //convert JSON into array
json_decode
中的第二个参数作为数组返回对象。
希望这可以帮助别人!