如果我将数据发布到我的Web服务器上的测试脚本(来自远程源),则$ _POST数组为空,但HTTP_RAW_POST_DATA包含已发布的信息。
使用表单在本地发布的数据可以正常工作。
服务器是Ubuntu 12.04 / Apache / PHP 5.3.10,它是标准版本。
更新
我用它来测试端点https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo/
这是我正在实施的REST服务器https://github.com/philsturgeon/codeigniter-restserver。它已经安装在标准的LAMP堆栈上,并且安装了新的codeigniter。
没有重定向发生。
答案 0 :(得分:1)
你确定你没有得到某种重定向吗?例如,您将发布的数据发送到http://somedomain.com,它会自动将您重定向到https://somedomain.com或http://www.somedomain.com ...您将以这种方式丢失发布数据。
答案 1 :(得分:1)
<强> 1 即可。 $ _POST包含发布到脚本的URL编码(应用程序/ www-url编码)变量,PHP会为您解码它们。在处理HTML FORM数据时使用这个。
<强> 2 即可。 $ HTTP_RAW_POST_DATA - 获取原始POST数据,您需要在编写API时使用它,并且需要XML无法解码为$ _POST的XML / JSON / ...输入。