9
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();

?

如果没有,请纠正我。

4

1 回答 1

12

不它不是。URLConnection#setRequestProperty()设置请求标。对于 HTTP 请求,您可以在此处找到所有可能的标头。

只是写writer请求正文。如果POST使用 urlencoded 内容,您通常会将查询字符串写入请求正文,而不是将其附加到请求 URI 中,如GET.

也就是说,connection.setDoOutput(true);已经隐式地将请求方法设置POST为 HTTP URI 的情况(因为它隐含地要求写入请求正文),因此connection.setRequestMethod("POST");没有必要再做一个。

于 2010-04-01T22:36:33.663 回答