Android奇怪的URL抓取

时间:2011-02-10 08:14:32

标签: android urlfetch

我在这里遇到一个奇怪的问题。这是代码,我用来获取网址内容:

URL u = new URL(url);
InputStream is = new BufferedInputStream(u.openStream());

我有两个网址,我想用这个代码获取。两者都包含xml数据。具体而言,第一个是http://www.berlingske.dk/unwire/latest/news_article/2/10,第二个是http://www.bt.dk/mecommobile/latest/news_article/1368/10?output_type=xml。第一个正确获取,第二个没有。我添加了一些日志记录,并发现,对于第二个url,一些奇怪的html页面被获取,而不是预期的xml。怎么可能这样呢?

1 个答案:

答案 0 :(得分:2)

我认为你在谈论网址重定向,这是我遇到的一个问题。请尝试以下代码:

URL url = new URL(url);
HttpURLConnection ucon = (HttpURLConnection) url.openConnection();
ucon.setInstanceFollowRedirects(false);
URL secondURL = new URL(ucon.getHeaderField("Location"));
URLConnection conn = secondURL.openConnection();
InputStream is = new BufferedInputStream(conn.openStream());

这里的“神奇”发生在以下两个步骤中:

ucon.setInstanceFollowRedirects(false);
URL secondURL = new URL(ucon.getHeaderField("Location"));

默认情况下,InstanceFollowRedirects设置为true,但您希望将其设置为false以捕获第二个URL。为了能够从“奇怪的html页面”获取第二个网址,您需要获得名为“位置”的标题字段

除非我误解了你的问题,否则我希望这有帮助!