1 HTTP请求包
HTTP请求包(GET、POST等请求方法)由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文。下面是一个HTTP请求包(GET)的例子:
Socket socket
= new Socket("127.0.0.1", 8080);
OutputStream os
= socket.getOutputStream();
InputStream
ins = socket.getInputStream();
StringBuffer sb=new StringBuffer();
sb.append("POST /index.jsp HTTP/1.1\r\n");//注意\r\n为回车换行
sb.append("Accept-Language: zh-cn\r\n");
sb.append("Connection: Keep-Alive\r\n");
sb.append("Host: 192.168.0.106\r\n");
sb.append("Content-Length: 37\r\n");
sb.append("\r\n");
sb.append("userName=new_andy&password=new_andy\r\n");
sb.append("\r\n");
//向Web服务器发送一个HTTP请求包
os.write(sb.toString().getBytes());
os.close();
2 HTTP应答包
和HTTP请求包相似,由三个部分构成,分别是:协议-状态代码-描述,应答头,应答正文。下面是一个HTTP应答的例子:
StringBuffer buffer = new StringBuffer();
buffer.append("HTTP/1.1 200 OK\r\n");
buffer.append("Date: Tue, 14 Sep 1999 02:19:57 GMT\r\n");
buffer.append("Server: Apache/1.2.6\r\n");
buffer.append("Connection: close\r\n");
buffer.append("Content-Type: text/html\r\n");
buffer.append("\r\n");
buffer.append("<html><head><title>解读HTTP包示例</title></head><body>test</body></html>\r\n");
//bout.write(buffer.toString().getBytes());
//向Web服务器发送一个HTTP请求包
try {
this.output.write(buffer.toString().getBytes());
this.output.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}