JAVA编写的使用Socket模拟Http的GET操作

来源:互联网 发布:淘宝买二手怎么交易 编辑:程序博客网 时间:2024/04/30 12:08

JAVA编写的使用Socket模拟Http的GET操作看后就很容易理解Web浏览器的原理了。

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.Socket;public class TestSocket {  String host = "www.javathinker.org";  int port = 80;  Socket socket;  public void createSocket() throws Exception {    socket = new Socket("www.163.com", 80);  }  public void communicate() throws Exception {    StringBuffer sb = new StringBuffer("GET / HTTP/1.1/r/n");    sb.append("Host: <A href="www.163.com" mce_href="www.163.com" target=_blank>www.163.com</A>/r/n");    sb.append("Connection: Keep-Alive/r/n");    sb.append("Accept: */*/r/n/r/n");    // 发出HTTP请求    OutputStream socketOut = socket.getOutputStream();    socketOut.write(sb.toString().getBytes());    socket.shutdownOutput(); // 关闭输出流    // 接收响应结果    System.out.println(socket);    InputStream socketIn = socket.getInputStream();    BufferedReader br = new BufferedReader(new InputStreamReader(socketIn));    String data;    while ((data = br.readLine()) != null) {      System.out.println(data);    }    socket.close();  }  public static void main(String args[]) throws Exception {    TestSocket client = new TestSocket();    client.createSocket();    client.communicate();  }}