PHP::获取POST请求内容

PHP:: Get POST Request Content

我正在使用 WebClient.UploadData() 方法 (C#) 向我的网络服务器发送 POST 请求。发送到我的网络服务器的数据包如下所示:

POST / HTTP/1.1
Host: {ip}
Content-Length: {length}
Expect: 100-continue
Connection: Keep-Alive


{buffer_content}

由于 {buffer_content} 在 $_POST 数组中没有赋值,我有以下问题...

问题:如何用PHP阅读{buffer_content}?

我偶然发现了 file_get_contents('php://input'),但我不确定是否建议这样做。

使用php://input流:

$requestBody = file_get_contents('php://input');

这是执行此操作的推荐方法,也是 PHP 7.0 中的唯一方法。以前,有时会有一个名为 $HTTP_RAW_POST_DATA 的全局变量,但它是否存在将取决于 INI 设置,创建它会影响性能。该变量已弃用并删除。

请注意,在 PHP 5.6 之前,您只能读取 php://input 一次,因此请务必存储它。

一旦你有了 body,你就可以从 JSON 或其他任何地方解码它,如果你需要的话:

$requestBody = json_decode($requestBody) or die("Could not decode JSON");