PHP - 收听POST请求

时间:2015-10-14 14:10:58

标签: php rest

已编辑问题:我想模拟两个不同的应用程序。在第一个(脚本X)上,可以提交表单并自行处理。他还通过REST将数据发布到第二个应用程序(脚本Y)。

目前脚本Y只不过是:

<?php
if(isset($_POST)) {
 deliver_response(200, "success", $_POST);
}

function deliver_response($status, $status_message, $data) {
 header("HTTP/1.1 $status $status_message");
 $response['status'] = $status;
 $response['status_message'] = $status_message;
 $response['data'] = $data;

$json_response = json_encode($response);
 echo $json_response;
}
?>

因此,当我提交脚本X时,它通过REST将一些数据发送到脚本Y,上面显示了脚本Y如何处理来自脚本X的POST请求。 echo 正在显示在脚本X的屏幕,但是我希望第二个屏幕显示脚本Y,当它从脚本收到POST请求时, 自动显示 X

我希望我明白我的观点。这是否有可能脚本Y只接收POST请求(可能仍然发送200次成功),但是还显示它在自己的屏幕上收到的数据?如果是的话,你能给我一个提示吗?

不,如果在脚本X上提交了一些新数据,我不希望脚本Y每隔几秒检查一次GET请求。

提前致谢!

2 个答案:

答案 0 :(得分:0)

要刷新页面,您可以使用ajax。 http://www.w3schools.com/ajax/default.asp

您还可以使用PHP在页面Y上刷新

def co = CompositeObject.newCompositeObject().with {
    def a = MyObject.newMyObject()
    a.parameter = Parameters.BASIC    
    def factory = BasicFactory.newInputStream(new FileInputStream(file), ResourceType.BASIC, a)
    co.add factory

    return it
}

答案 1 :(得分:0)

前段时间,当外部API要通过托管在我们服务器上的结果URL发送数据时,我遇到了同样的情况。我认为您有同样的问题,只是发送方和接收方都由您托管。

脚本Y必须具有$recieved_params= file_get_contents(php://input) 这将捕获发布到此脚本的所有内容,然后即可处理内容。

由于此页面是通过脚本而不是浏览器调用的,因此它不仅会回显内容,因此您可以在$recieved_params不为空时重定向浏览器。