HttpURLConnection 设置setDoOutput(true)后,GET转POST
// 错误示例
connection.setDoOutput(true);
OutputStream outputStream = connection.getOutputStream();
DataOutputStream out = new DataOutputStream(outputStream);
out.flush();
out.close();
connection.getOutputStream()会调用:
private synchronized OutputStream getOutputStream0() throws IOException {
try {
if (!doOutput) {
throw new ProtocolException("cannot write to a URLConnection"
+ " if doOutput=false - call setDoOutput(true)");
}
if (method.equals("GET")) {
method = "POST"; // Backward compatibility
}
// ... 省略
}
解决:删除掉错误示例中的代码即可