使用HttpURLConnection下载html时出现奇怪的行为
在Android的维基百科阅读器应用程序中,我使用HttpURLConnection下载文章的html,有些用户报告他们无法看到文章,而是看到一些CSS,所以它看起来像他们的载体似乎在下载之前预处理html ,而其他维基百科的读者似乎工作得很好。
示例网址:http://en.m.wikipedia.org/wiki/Black_Moon_(album)
我的方法:
public static String downloadString(String url) throws Exception
{
StringBuilder downloadedHtml = new StringBuilder();
HttpURLConnection urlConnection = null;
String line = null;
BufferedReader rd = null;
try
{
URL targetUrl = new URL(url);
urlConnection = (HttpURLConnection) targetUrl.openConnection();
if (url.toLowerCase().contains("/special"))
urlConnection.setInstanceFollowRedirects(true);
else
urlConnection.setInstanceFollowRedirects(false);
//read the result from the server
rd = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
while ((line = rd.readLine()) != null)
downloadedHtml.append(line + 'n');
}
catch (Exception e)
{
AppLog.e("An exception occurred while downloading data.rn: " + e);
e.printStackTrace();
}
finally
{
if (urlConnection != null)
{
AppLog.i("Disconnecting the http connection");
urlConnection.disconnect();
}
if (rd != null)
rd.close();
}
return downloadedHtml.toString();
}
我无法重现这个问题,但是必须有办法解决这个问题吗? 我甚至通过将setInstanceFollowRedirects设置为'false'来禁用重定向,但它没有帮助。
我错过了什么吗?
用户正在报告的示例:
http://pastebin.com/1E3Hn2yX
载体是以某种方式在下载之前预处理html的
一种方法来解决这个问题?
使用HTTPS防止运营商重写页面。 (不引用)
我错过了什么吗?
不是我能看到的
链接地址: http://www.djcxy.com/p/78509.html上一篇: Weird behavior when downloading html using HttpURLConnection