2013-09-30 142 views
0

我正在嘗試使用RSS feeds with Java - Tutorial 來閱讀Lars Vogel的RSS源http://www.youm7.com/new3agelrss.aspRSS閱讀器403和503錯誤

我設法讀取使用確切的代碼沒有問題的另一個rss提要。

對於這個環節,我得到

服務器返回的HTTP響應代碼:403網址:http://www.youm7.com/new3agelrss.asp

根據java.io.IOException: Server returned HTTP response code: 403 for URL我編輯private InputStream read()方法如下:

private InputStream read() { 
    try { 

     HttpURLConnection httpcon = (HttpURLConnection) url.openConnection(); 
     httpcon.addRequestProperty("User-Agent", "Mozilla/4.76"); 
     return httpcon.getInputStream(); 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } 
    } 

現在我得到:

服務器返回的HTTP響應代碼:503網址:http://www.youm7.com/new3agelrss.asp

即使這樣我可以打開網址拋出的網頁瀏覽器!你可以自己嘗試。 請幫忙。我願意接受任何替代方法。 在此先感謝。

注:

我在我的Mac安裝了兩個RSS閱讀器應用程序。 (RSS通知和 RSS機器人),並設法讀取該RSS。

回答

1

您的代碼對於大多數網站來說可能沒有問題。然而,這個網站看起來像是在重定向它之前檢查和運行頁面上的一些JavaScript(可能試圖阻止人們刮掉它)。所以我不確定這是否會起作用,除非可能你可以設置一個他們正在設置的cookie,或者模擬他們期待的響應(我不確定你是否有權訪問任何可以運行javascript繞過它)。

更新:有一些挑戰/響應在那裏看着它,這引發了一個問題(如一些數字,需要加起來)。我想你可能會考慮刮一下原始頁面,進行計算並將答案張貼回來。我不確定我想要發佈一個解決方案,雖然它看起來像代碼在那裏準確地嘗試並停止這一點。另外他們可以很容易地改變挑戰問題/格式。所以不知何故運行JavaScript可能是最好的方式,如果可能的話。

+0

我在問題中添加了一個註釋,您的答案是否仍然適用? – hasan83

+0

我懷疑任何可以讀取Javascript的東西都可以工作(否則你將不得不設計一些特定於挑戰問題的東西,這些問題可能會有所不同)。我不知道是否像http://htmlunit.sourceforge.net/會幫助,因爲我的理解是它支持一些JavaScript。 – Ian