如题。关于http头的具体内容,可以自己查一下,如果对计算机网络感兴趣,推荐我们的课本《Computer Networking ——A Top Down Approach》
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class Main {
public static void main(String[] args) {
try {
Socket socket = new Socket("www.baidu.com", 80);
OutputStream out = socket.getOutputStream();
InputStream in = socket.getInputStream();
StringBuffer sb = new StringBuffer();
sb.append("GET /index.html HTTP/1.1\r\n");
//sb.append("Host: www.baidu.com\r\n");
sb.append("Connection: close\r\n");
//sb.append("User-agent: Mozilla/5.0\r\n");
//sb.append("Accept-language: zh-cn\r\n");
sb.append("\r\n");
out.write(sb.toString().getBytes());
out.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String tmp = "";
System.out.println("response:\r\n");
while ((tmp = reader.readLine()) != null) {
System.out.println(tmp);
}
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
注释掉的可以不加,也可以加上。如果去掉了connection项的话,会导致在while循环中不出来,应该是自动keep-alive了。最后一行的"\r\n"不要忘记,否则会无法返回的。