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(); } }