我搜索瞭解決方案,但可能會看錯地方。 我創建了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連線才能請求。雖然來自其他地點的請求不需要它們。可能會稍後再檢查...
我剛剛在我的盒子上測試了您的代碼,並且連接超時。也許服務暫時停止... – Stephan
感謝您的努力。我取代了域名以確保安全,所以實際上它是其他域名。 – Pavlo