我正在尝试使用 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/