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();
如果没有,请纠正我。
答案 0 :(得分:12)
不,不是。 URLConnection#setRequestProperty()
设置了一个请求标题。对于HTTP请求,您可以找到所有可能的标头here。
writer
只是写请求正文。如果POST
包含urlencoded内容,您通常会将查询字符串写入请求正文,而不是像GET
中那样将其附加到请求URI。
也就是说,connection.setDoOutput(true);
已经隐式地将请求方法设置为POST
,以防HTTP URI(因为它隐含地需要写入请求主体),所以做{{1}之后是不必要的。