HTTP协议请求包的Java实现(1)(2)
- Socket socket = new Socket("127.0.0.1", "80");
- OutputStream os= socket.getOutputStream();
- InputStreamins = socket.getInputStream();
- StringBuffer sb=new StringBuffer();
- sb.append("GET /index.jsp HTTP/1.1rn");//注意rn为回车换行
- sb.append("Accept-Language: zh-cnrn");
- sb.append("Connection: Keep-Alivern");
- sb.append("Host: 192.168.0.106rn");
- sb.append("Content-Length: 37rn");
- sb.append("rn");
- sb.append("userName=new_andy&password=new_andyrn");
- sb.append("rn");
- //向Web服务器发送一个HTTP请求包
- os.write(sb.toString().getBytes());
- 服务器端的代码在大致结构为:
- while (!shutdown) {
- Socket socket = null;
- try {socket = serverSocket.accept(); //等待客户以送HTTP协议请求包
- // 创建HTTP请求包处理线程
- RequestThread request = new RequestThread(socket);
- request.start();
- if(shutdown) System.exit(0);
- }
- catch (Exception e) {
- e.printStackTrace();
- } }
RequestThread线程分析HTTP请求包,跟根据请求包内容在服务端生成一个HTTP应答包。下一节说明怎样分析HTTP包。
InputStreaminput = socket.getInputStream();//从此字节数据流获得HTTP请求包内容。
OutputStream output= socket.getOutputStream(); //向此字节流写入HTTP协议应答包内容。
评论暂时关闭