java - 无法将 HttpURLConnection 方法切换为 POST

标签 java android

我正在尝试使用 HttpsUrlConnection 向 URL 发送 HTTP POST 请求。这是我正在尝试做的:

URL requestedUrl = null;
HttpURLConnection urlConnection = null; 
try {
            requestedUrl = new URL("https://www.test.local/login/");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        try {
            urlConnection = (HttpsURLConnection) requestedUrl.openConnection();

            try {
                urlConnection.setRequestMethod("POST");
            } catch (ProtocolException e1) {
                e1.printStackTrace();
            }
            urlConnection.setRequestProperty("Content-Type","application/json");
            urlConnection.setRequestProperty("Accept", "application/json");
            urlConnection.setDoInput(true);
            urlConnection.setDoOutput(true);
            urlConnection.setUseCaches(false);
            urlConnection.setConnectTimeout(1500);

        try {
                urlConnection.connect();
            } catch (IOException e) {
                e.printStackTrace();
            }

调试时我看到 RequestMethod 仍然是 GET,知道为什么吗?

提前致谢。

最佳答案

使用给定的代码,您应该根本无法在网络跟踪中看到请求。

在给定的 fragment 中,您仅通过 urlConnection.connect() 打开一个连接,但您没有像使用 urlConnection.getContent() 那样执行实际请求。 connect() 方法本身不执行请求。

用以下内容替换您的最后一个 try-catch block 应该会发送一个 POST 请求:

try {
    urlConnection.connect(); // open the connection
    urlConnection.getContent(); // send prepared request
} catch (IOException e) {
    e.printStackTrace();
}

关于java - 无法将 HttpURLConnection 方法切换为 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949176/

相关文章:

java - 使用 Java 8 中的特性,转换列表中所有值的最简洁方法是什么?

在 Activity 之间传递时 Android Bundle 损坏了吗?

android - 如何更改 Lollipop 及以上设备上上下文操作模式的高度?

java - 将 LinearLayout 转换到 KeyboardView 的正确方法是什么?

java - HQL 从多对多映射中删除关联

Java值加变量++

java - 如何在运行 gradlecompileJava 时修复相关子项目中的 "Cannot find symbol error"

Java JDBC swing登录表单错误

android - 在保持状态的同时切换 fragment

android - 在 ICS 的 webViewClient 中播放 SWF 文件?