【发布时间】:2014-02-10 02:56:29
【问题描述】:
第一种方式就是url.openStream,然后是InputStreamReader,
StringBuffer temp = new StringBuffer();
URL url = new URL(addr);
BufferedReader bf = new BufferedReader(new InputStreamReader(url.openStream(),"ISO-8859-1"), BUFFER_SIZE );
int charsRead;
char[] copyBuffer = new char[BUFFER_SIZE];
while ((charsRead = bf.read(copyBuffer, 0, BUFFER_SIZE)) != -1) {
temp.append(copyBuffer, 0, charsRead);
}
bf.close();
我发现结果与 IE/Chrome 不同。
第二种方式是先用HttpURLConnection,再用getInputStream,再用InputStreamReader
URL url = new URL(addr);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", USER_AGENT);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer temp = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
temp.append(inputLine);
}
in.close();
如果我查看源代码,这将准确返回 IE 中的内容。
所以我的问题是:
为什么有时使用 url.openStream 的第一个方法返回的 html 与我从 IE 中读取的不同?有标签缺失,回车数不同(即问题2)
我注意到第一个方法的 html 有合理的回车。第二种方法中的一种没有回车。 IE 视图源显示比第一种方法更多的回车。这是为什么呢?
谢谢!
【问题讨论】:
-
您访问了哪个网站来测试您的代码?
标签: java html internet-explorer http httpurlconnection