URL url = new URL("http://www.example.com/comment");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
是
connection.setRequestProperty(key, value);
和
一样OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("key=" + value);
writer.close();
?
如果不对,请指正。
最佳答案
不,不是。 URLConnection#setRequestProperty()
设置请求 header 。对于 HTTP 请求,您可以找到所有可能的 header here .
writer
只是编写请求body。如果 POST
包含 urlencoded 内容,您通常会将查询字符串写入请求正文,而不是像 GET
那样将其附加到请求 URI。
就是说,在 HTTP URI 的情况下,connection.setDoOutput(true);
已经隐式地将请求方法设置为 POST
(因为它隐式需要写入然后请求正文),因此之后执行 connection.setRequestMethod("POST");
是不必要的。
关于java - connection.setRequestProperty 和明确写入 urloutputstream 是一样的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560150/