您的位置:首页 > 理论基础 > 计算机网络

http协议客户端向服务器端请求时一般需要发送的内容

2014-10-27 16:22 134 查看
out.println("GET /shopping/index.html HTTP/1.1");//请求行 包括请求方式,文件路径, http协议版本(必写)
请求头....
out.println("Aceept: */*");//客户端能够处理的文件类型(不是必须)
out.println("Host: 192.168.1.111:8080");//客户端要访问的主机及服务器的端口(必写),否则会出现400(请求错误)
out.println("Connection: close");//传输完成后和服务器的链接状态(不是必须)
out.println();//空行用来区分请求头和请求体(必写)
请求体....


改用URL和URLConnection来处理更为方便
       //URL这个类通过获取URLConnection连接器的对象(也就是将连接封装成了对象:java中内置的可以解析的具体协议的对象+socket)
//另外,Socket 和 DatagramSocket 是负责传输层工作的,而URL或者URLConnection是负责应用层工作的
//所以网络编程用URL是比较好的(只保留服务器端的应答体,应答消息头和应答消息行不会显示)
URL url = new URL("http://localhost:8080/shopping/login.html?name=HAHA");
URLConnection con = url.openConnection();
System.out.println(con);
System.out.println(url.getProtocol());
System.out.println(url.getPort());
System.out.println(url.getPath());
System.out.println(url.getFile());
System.out.println(url.getQuery());
/*
http 协议
8080 端口
/shopping/login.html  路径
/shopping/login.html?name=HAHA 文件名(包括path部分 + query部分)
name=HAHA   查询部分(也就是参数部分)
*/

InputStream in = con.getInputStream();
byte[] bt = new byte[1024*2];
int len = in.read(bt);
System.out.println(new String(bt, 0, len, "utf-8"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐