GWT: отправить php запрос

Я пытаюсь связаться с php-сервером из моего проекта gwt.

Я уже получил 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);
}

Я вижу, что почтовый запрос выходит, а полезный груз запроса является json-объектом. Однако, когда я пытаюсь получить доступ к данным в сценарии php, я получаю сообщение об ошибке, что индекс name не определено

Вот PHP:

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

Что-то не так с моим PHP?

У кого-нибудь есть рабочий пример для этого?

1

Решение

Хотя я до сих пор не проверял документацию PHP, я склонен помнить, что $POST содержит переменные почтового запроса, особенно полезные в x-www-form-urlencoded запрос. .. проверил, да. Я не ошибаюсь 🙂

На самом деле вы хотите прочитать тело запроса post и проанализировать его содержимое в формате JSON в массиве PHP или хэше.

Чтобы прочитать тело см. Здесь: Как получить тело POST в php?

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

Разбор json описан здесь: Разбор файла JSON с помощью PHP

Я не буду цитировать код оттуда, так как он, возможно, не совсем соответствует вашим потребностям, но вы ищете json_decode($json, TRUE),

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]