android - HttpURLConnection 方法总是 GET?

标签 android httpurlconnection

如 Android 文档所示,我已设置 setDoOutPut(true); 以便连接以 POST 形式发送。但是,在调试器中,当我检查 HTTPURLConnection 方法成员时,它始终是 GET,即使在 setDoOutput(true) 甚至 setRequestMethod("POST")。我是否以某种方式将其重置回 GET

URL url = new URL(serverAddr);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod(verb);
urlConnection.setFixedLengthStreamingMode(postBody.getBytes().length);
//urlConnection.setRequestProperty("Content-Length", postBody.getBytes().toString());
urlConnection.setRequestProperty("Content-Type", "application/json;charset=utf-8");

urlConnection.connect();

OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
out.write(postBody.getBytes());
out.flush();

int responseCode = urlConnection.getResponseCode();
System.out.println("HTTPS RESPONSE CODE: " + responseCode);

out.close();

编辑:这一定是个错误...调试器清楚地显示 setDoOuput 成员变量为 false,即使我将其设置为 true。它没有被设置!

最佳答案

如果您希望使用 POST 动词并随请求发送数据,则需要使用 urlConnection.setDoInput(true);

http://developer.android.com/reference/java/net/URLConnection.html#setDoInput(boolean)

必须在建立连接之前设置。

关于android - HttpURLConnection 方法总是 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36192921/

相关文章:

java - Android:通过 URL.getContent() 从互联网获取数据 - 不需要 HttpUrlConnection?

java - Android:如何从 MTP 读取 Java 应用程序中的文件

android - 从 webview 静默认证

android - 如何重用 RecyclerView 对象、适配器和 View 持有者

android - 我应该在 android 中关闭 HttpURLConnection 吗?

java - 在 HttpURLConnection 中发送 PUT、DELETE HTTP 请求

android - 火存储 : If two listeners listening the same query firebase maintains two different query snap shots?

Android - sendBroadcast() 和 onReceive() - 进程间通信的同步解决方案

android - 系统调用期间的 I/O 错误,Broken pipe

java - HttpUrlConnection:Cookie 显示在 CookieStore 中,但不显示在 POST header 中