我想在應用程序引擎應用程序下使用urlfetch做POST請求。HttpURLConnection應用程序引擎POST請求的Java示例不起作用
我遵循從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'部分 – 2013-04-06 21:45:09
我也一樣 - 但是,迴應說405:方法不允許。這意味着HttpURLConnection發送GET而不是POST。我想知道它爲什麼發送GET而不是POST請求。 – user1220958 2013-04-07 00:33:42
我仍然不知道爲什麼App Engine文檔中的這個示例不起作用。我最終使用了此處介紹的方法([link](http://stackoverflow.com/a/13468601/1220958))能夠執行POST請求。 – user1220958 2013-04-07 03:11:34