- public static void main(String[] args) throws Exception {
- Socket socket = new Socket("www.sina.com.cn", 80);
- PrintWriter out = new PrintWriter(socket.getOutputStream());
- out.println("GET / HTTP/1.1");
- out.println("Host: www.sina.com.cn");
- out.println();
- out.flush();
- BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- while(true) {
- String s = in.readLine();
- if(s == null) {
- break;
- }
- System.out.println(s);
- }
- in.close();
- out.close();
- socket.close();
- }
要请求一个网站首先要清楚URL是怎么样解析的
只要符合Http协议,服务器就能接收,不论是浏览器还是我们写的客户端程序
一个请求有四部分组成:请求行,请求头,空行和内容
以新浪为例
用HTTP Analyzer截获的客户端请求为
请求头
GET / HTTP/1.1
请求行
Accept: */*
Referer: http://www.hao123.com/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA)
Host: www.sina.com.cn
Connection: Keep-Alive
Cookie: Apache=222.213.239.68.43771225534694674
一个成功的请求必须包含
请求头GET / HTTP/1.1
与请求行中的Host: www.sina.com.cn
最后一定要注意还有个空行