UrlConnection的代理和返回狀態碼的問題


今天寫了一段代碼想在service里訪問一個外部網站,在service的方法里寫了如下代碼

System.setProperty("http.proxyType", "4");
System.setProperty("http.proxyPort", port);
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxySet", "true");

URL url = new URL(hurl);
HttpURLConnection con  = (HttpURLConnection)url.openConnection();
con.setConnectTimeout(100000);
con.connect();
int  state = con.getResponseCode();

結果一直報連接超時,后來將設置代理的代碼移動到control層后就可以正常訪問了,不知是何原因,這里做個記錄。

 

還有在用上面的代碼測試訪問中國天氣網的上海天氣預報的頁面時,我把url加了些字符讓它變成錯誤的url發現程序返回的狀態碼依然是200,而用瀏覽器訪問則有如下情況:

用google瀏覽器監測了一下發現總共發出了2個網頁請求,第一個請求是我主動發起的,返回的結果是302,然后客戶端又主動訪問了服務器的404頁面???

如果是這樣的話java代碼應該是獲取到302狀態碼的那個頁面,但是實際實際讀取網頁的流后發現是后面這個404頁面,這是一個很奇怪的問題。

如果是服務器端的跳轉那我瀏覽器就不應該出現2個請求了哈....  無解啊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM