一个java Socket实现HttpClient可能出现的一个错误
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class test2 {
public static void main(String arg[]) throws Exception
{
try {
Socket socket = new Socket("www.baidu.com",80);
byte[] bytes = ("GET / HTTP/1.1/n" +
"Host:www.baidu.com/n" +
"Connection:close/n" +
"User-agent:Mozilla/4.0/n" +
"Accept-language:zh-cn/n" +
"/n").getBytes("UTF-8");
socket.getOutputStream().write(bytes);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(8192);
int c ;
while( (c = socket.getInputStream().read()) != -1){
arrayOutputStream.write(c);
}
System.out.println(new String(arrayOutputStream.toByteArray()));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意那个 GET 如果写成Get 则可能有些站点不能够过的http文件,比如www.baidu.com