2016-01-15 44 views
0

我搜索瞭解決方案,但可能會看錯地方。 我創建了Jsoup請求,它在一臺計算機上工作,但不適用於其他計算機。我檢查了其他請求 - 它們都可以正常工作。如何檢測發生了什麼?將應用程序移動到其他服務器時,JSOUP行爲會有所不同。爲什麼404錯誤?

所以我創建應用程序,並把主方法一個JSOUP調用

String taskJson = Jsoup 
     .connect(
       "https://aaa.com/job_listings/startup_ids?filter_data[last_active]=" 
         + "1" 
         + "&filter_data[roles][]=" + "Marketing" 
         + "&tab=find") 
     .timeout(10000). 
     userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0") 
     .ignoreContentType(true).execute().body(); 

,它工作正常我的Win 7的電腦上,和Debian PC。但是,當我嘗試從其他Windows 2008服務器上運行它(亞馬遜AWS EC2)我得到

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=https://aaa.com/job_ 
listings/startup_ids?filter_data[last_active]=1&filter_data[roles][]=Marketing&tab=find 
     at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:537) 
     at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493) 
     at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205) 
     at AngelJSOUPCheck.main(AngelJSOUPCheck.java:16) 

嘛。我認爲可能是服務器設置有問題,並檢查請求登錄在同一個域的形式。它工作完美。

Response getLoginForm = Jsoup.connect("https://aaa.com/users/login") 
       .timeout(10000) 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0") 
       .method(Method.GET).execute(); 

請注意,破損的請求從不安全區域

更新需要的數據:

我試着用HttpURLConnection的擺脫URL數據 - 並獲得:IOException異常文件找不到,嘗試時,你得到的流與網站數據。

我的下一次嘗試是使用代理。我能夠通過HttpURLConnection對象獲取數據。然後,我安裝了Firefox,它聲明瞭404。我清理了IE瀏覽器的Cookie,並且還聲明瞭404條。

看起來像目標網站檢查IP,如果它以某種方式不可信,則需要cookie連線才能請求。雖然來自其他地點的請求不需要它們。可能會稍後再檢查...

+0

我剛剛在我的盒子上測試了您的代碼,並且連接超時。也許服務暫時停止... – Stephan

+0

感謝您的努力。我取代了域名以確保安全,所以實際上它是其他域名。 – Pavlo

回答

1

有可能是有問題的Web服務器阻止來自Amazon AWS EC2服務的IP地址。要檢查這一點,你可以嘗試在shell中使用curl或wget來從AWS機器獲取內容。如果這也失敗了,你可以嘗試使用代理來訪問網站,看看是否有幫助。

+0

我可以從同一個AWS Windows 2008服務器實例上的Internet Explorer中的受損URL獲取數據。我還應該尋找捲曲還是wget? – Pavlo

+0

不,如果你可以在AWS實例中使用IE,那麼JSOUP應該能夠得到最佳效果。我不知道還有什麼可能是問題 - 抱歉。 – luksch

+0

是的,我也這麼認爲。雖然想檢查代理... – Pavlo

相關問題