Я пытаюсь выполнить запрос POST, используя urfetch в приложении движка приложения.
Я следовал инструкциям (и коду), извлеченным из простого примера из документации App Engine (здесь https://developers.google.com/appengine/docs/java/urlfetch/usingjavanet) в разделе "Использование HttpURLConnection".
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
String message = URLEncoder.encode("my message", "UTF-8");
try {
URL url = new URL("http://httpbin.org/post");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("message=" + message);
writer.close();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
// OK
} else {
// Server returned HTTP error code.
}
} catch (MalformedURLException e) {
// ...
} catch (IOException e) {
// ...
}
Чтобы проверить этот запрос POST, я использую следующий веб-сайт "http://httpbin.org/post" .
Выборка и соединение работают, однако соединение отправляется как GET, а не как POST.
Вот ответ, который я получаю на этот запрос:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1><p>The method GET is not allowed for the requested URL.</p>
Кто-нибудь сталкивался с этой проблемой?
Любая помощь приветствуется.
// OK
- person Jon Lin   schedule 07.04.2013