无法切换HttpURLConnection方法为POST

3

我正在尝试使用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请求,有什么想法吗?
提前感谢。

setDoOutput() 已经将方法设置为 POST。你重复了这个步骤。 - user207421
2个回答

3

根据给定的代码,您不应该在网络跟踪中看到任何请求。

在给定的代码片段中,您只通过urlConnection.connect()打开连接,但是您没有像urlConnection.getContent()那样执行实际请求。仅使用connect()方法不会执行请求。

用以下代码替换您的最后一个try-catch块应该发送POST请求:

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

0

这里回答

简而言之,在调试器中显示为“method”的值并不是通过setRequestMethod(“POST”)设置的值。


你的答案可以通过添加更多支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是否正确。你可以在帮助中心找到有关如何编写良好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接