我正在制作一个使用 HttpURLConnection 检索网页内容的 android 程序。我是 Java 和 Android 的新手。
问题是:阅读器读取整个页面源,但在最后一次迭代中,它没有附加到 stringBuffer 的最后一部分。
使用调试器我已经确定,在最后一次循环迭代中,创建了字符串 buff,但 stringBuffer 只是不附加它。
我需要解析检索到的内容。有没有比使用字符串更好的方法来处理解析内容。我在许多其他网站上读过,Java 中的字符串大小仅受可用堆大小的限制。我也尝试过使用 StringBuilder 。
任何人都知道可能是什么问题。顺便说一句,随时建议对代码进行任何改进。
谢谢!
URL u;
try {
u = new URL("http://feeds.timesonline.co.uk/c/32313/f/440134/index.rss");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestProperty("User-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)");
c.setRequestMethod("GET");
c.setDoOutput(true);
c.setReadTimeout(3000);
c.connect();
StringBuffer stringBuffer = new StringBuffer("");
InputStream in = c.getInputStream();
InputStreamReader inp = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(inp);
char[] buffer = new char[3072];
int len1 = 0;
while ( (len1 = reader.read(buffer)) != -1 )
{
String buff = new String(buffer,0,len1);
stringBuffer.append(buff);
}
String stranica = new String(stringBuffer);
c.disconnect();
reader.close();
inp.close();
in.close();