gwt:发送php post请求

时间:2015-12-18 13:39:31

标签: php gwt

我正在尝试从我的gwt项目与php服务器进行通信。

我已经收到了GET请求,但是,我的POST请求到目前为止还没有。

这是我的代码:

Button synchronize = new Button("synchronize ",
                new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        String myurl = URL
                                .encode("php/test.php");

                        RequestBuilder builder = new RequestBuilder(
                                RequestBuilder.POST, myurl);

                        JSONObject jsonValue = new JSONObject();
                        jsonValue.put("name", new JSONString("Abc"));
                        builder.setHeader("Content-Type", "application/json");

                        try {
                            Request request = builder.sendRequest(jsonValue.toString(),
                                    new RequestCallback() {
                                        public void onError(Request request,
                                                Throwable exception) {
                                            processResponse("ERROR");
                                        }

                                        public void onResponseReceived(
                                                Request request,
                                                Response response) {
                                            if (200 == response.getStatusCode()) {

                                                processResponse(response
                                                        .getText());
                                            } else {
                                                processResponse("ERROR");
                                            }
                                        }
                                    });

                        } catch (RequestException e) {
                            processResponse("ERROR");
                        }

                    }
                });

public void processResponse(String responseString) {
    Window.alert(responseString);
}

我可以看到post请求消失,请求有效负载是json-object。但是,当我尝试访问php脚本中的数据时,我收到索引name未定义的错误。

这是PHP:

<?php
echo $_POST["name"];
?>

我的PHP有问题吗?

有没有人有这方面的工作示例?

1 个答案:

答案 0 :(得分:1)

虽然到目前为止我还没有检查PHP文档,但我倾向于记住,$POST包含post请求的变量,在x-www-form-urlencoded请求中特别有用。 ..检查一下,是的。我是对的: - )

您真正想要的是读取post请求的主体并将其JSON内容解析为PHP数组或散列。

要阅读正文,请参阅此处:How to get body of a POST in php?

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

此处描述了解析json:Parsing JSON file with PHP

我不会从那里引用代码,因为它可能不完全符合您的需求,但您会寻找json_decode($json, TRUE)