如何在 PHP 中正确收听 HTTP JSON POST 请求?

How can I properly listen to HTTP JSON POST requests in PHP?

我需要侦听 HTTP POST 请求 并响应它。我如何听取这样的请求

如何监听 HTTP Post 请求URL POST 请求必须发送到什么地方? 如何让程序始终监听不使用 while(!file_exists("stop.txt")) {} 之类的技巧?

请注意,我不是在编写网站代码

要使用 PHP 程序收听 POST 请求,您需要做的就是拥有一个 Web 服务器 运行 一个接受 POST请求。

您不需要任何等待请求的代码(例如 while(!file_exists("stop.txt")) {})。该部分由网络服务器负责,一旦收到 HTTP 请求,它就会调用您的脚本。

在您的 PHP 脚本中,您需要处理请求,这是通过读取魔法变量 $_POST 完成的。

这是一个简单的示例,用于接收带有参数 "payload" 的 HTTP POST 请求,该请求在 JSON.

中有数据

顺便说一句。生成您自己的 POST 请求的一个好方法是使用像 Postman (https://www.getpostman.com/)

这样的工具
<?php

$request_json = $_POST["payload"];
$request = json_decode($request_json);
print_r($request);

URL 将取决于 Web 服务器所在的位置 运行ning。例如如果你在本地运行它会像localhost/path/to/run.php

我不知道你的问题是否正确。如果你只是想回答,如果 post 请求发送给你,你可以写一个简单的 php 脚本:

<?php
if (!empty($_POST)):
 // Post was sent and you can do stuff with it and response
 $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
 echo json_encode($arr);
else:
 echo "Nothing to see here, because no post was sent";
endif;
?>

因此,当有人向该脚本所在的 uri 发送 post 时,此脚本会做出响应。 正如我下面的答案一样,您的服务器不需要主动 "listen" ;-)