一个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
本文介绍了一个使用 Java Socket 实现简单 HttpClient 的示例代码,并解释了如何通过 GET 请求从 www.baidu.com 获取数据。注意 GET 方法的大小写敏感性,以及处理 UnknownHostException 和 IOException 的异常捕获。
2706

被折叠的 条评论
为什么被折叠?



