2011-02-10 89 views
0

我在這裏有一個奇怪的問題。這裏的代碼,我用來獲取網址內容:Android奇怪的URL提取

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。這怎麼可能呢?

回答

2

我想你說的是URL重定向,這是我遇到的一個問題。試試下面的代碼:

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,以捕獲第二網址。爲了能夠從「怪異的html頁面」獲得第二個網址,您需要獲取名爲「位置」的標題字段。

除非我誤解了你的問題,我希望這有助於!