2011-12-29 13 views
2

我想使用JSoup從此link上的表中提取數據。當我嘗試在Eclipse中的Java應用程序項目中運行以下代碼時,我成功地能夠這樣做。但是,當我在Android項目中使用相同的代碼時,它會給我403加載URL的錯誤。403使用JSoup將代碼從Java應用程序移動到Android時出現錯誤

這是我的代碼:

try{ 
    Connection c=Jsoup.connect("http://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?date=29DEC2011"); 
    //System.out.println("got connection "+c.toString()); 
    Document doc=c.get(); 
    //System.out.println("reached"); 
} 
catch(Exception e){ 
    e.printStackTrace(); 
} 

在堆棧跟蹤它顯示Document doc=c.get();線的錯誤這樣就意味着有一些錯誤的方法get()

我該怎麼做才能糾正這個問題併成功解析頁面?

+2

[關於HTTP 403 Forbidden的文檔](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4)。這個問題至少與Java無關。拒絕請求的是服務器。我們可以做幾次猜測,但最好是聯繫服務器管理員並請他們解釋(在您閱讀了網站的政策後)。 – BalusC 2011-12-29 19:34:23

+1

謝謝您的即時回覆。但是,我的問題仍然是,爲什麼它能夠在Java應用程序項目中使用運行時從服務器獲取文檔? – 2011-12-29 19:42:09

+0

從查看請求標題開始。顯然,服務器阻塞了某些UA。但服務器沒有這樣做是沒有理由的......我會在嘗試解決此問題時遇到嚴重的法律問題之前真正與他們聯繫。 – BalusC 2011-12-29 19:47:49

回答

0

用途:

response.ignoreHttpErrors(假);

禁用獲取服務器錯誤(例如:403. 404等)。如果你禁用,你可以從頁面獲得HTML代碼。

相關問題