1.getOutputStream和getInputStream返回的流都是用于输出或者输入报文实体的,而不是报文头部。
2.请求行根据设置的请求方法和URL中的信息自动拼接,首部字段通过setRequestProperty()设置,会在connect()被调用时,输出并被缓冲起来
3.通过OutputStream输出的实体,会被缓冲起来,所以content-length会自动计算,还有首部字段和实体间的CRLF会自动加入,在getInputStream的时候会被发送出去。
4.getInputStream后,OutputStream被自动关闭,如果向OutputStream中写入数据,则会报异常。
5.HttpURLConnection只能发出一次请求并接收一次反馈信息。并不能用于多次请求
与服务器通信代码:
URL url = new URL("http://localhost:8888/hsadjlgew/hsldjlgew");
String s1 = "data";
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
// conn.setRequestProperty("Content-Length",String.valueOf(s1.length()));
conn.connect();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), Charset.forName("ASCII")));
bw.write(s1);
bw.flush();
bw.close();
InputStream is = conn.getInputStream();
BufferedInputStream br = new BufferedInputStream(is);
println("request code: " + conn.getResponseC