1、BufferedReader
URL url = new URL("http://qingni.net");
// 读取源码
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
String line;
StringBuffer sb = new StringBuffer();
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
2、InputStreamReader
URL url = new URL("http://qingni.net");
// 读取源码
//读取中文时,使用Reader类是每次读出两个字节的,不会出现中文乱码
InputStreamReader in = new InputStreamReader(url.openStream(), "UTF-8");
char[] buf = new char[2048];//缓存
StringBuffer sb = new StringBuffer();
int len = 0;
while ((len = in.read(buf)) != -1) {//当没到文档尽头继续读取
sb.append(buf, 0, len);
}
3、HttpURLConnection
String line;
StringBuffer sb = new StringBuffer();
resp.setContentType("text/plain; charset=utf-8");
try {
URL url = new URL("http://qingni.net/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);// 使用 URL 连接进行输入
connection.setRequestMethod("GET");
// 取得网页源码
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
// 每次读取一行输出
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
} else {
// Server returned HTTP error code.
}
connection.disconnect();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
本文详细介绍了如何使用BufferedReader、InputStreamReader、HttpURLConnection等API进行HTTP请求和响应的读取,并展示了Post方法的实现过程,包括设置请求头、发送数据以及接收返回结果。
144

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



