我試圖編寫一個程序在我的webapp上執行自動測試。爲了做到這一點,我使用HttpURLConnection打開了一個連接。當我調用connect時,HttpURLConnection沒有連接()
我試圖測試的一個頁面執行302重定向。我的測試代碼如下所示:
URL currentUrl = new URL(urlToSend);
HttpURLConnection connection = (HttpURLConnection) currentUrl.openConnection();
connection.connect();
system.out.println(connection.getURL().toString());
所以,讓我們說,urlToSend是http://www.foo.com/bar.jsp,而這個頁面重定向到http://www.foo.com/quux.jsp。我的println聲明應該打印出http://www.foo.com/quux.jsp,對不對?
錯誤。
重定向從不發生,它打印出原始URL。但是,如果我通過調用connection.getResponseCode()將connection.connect()行切換出來,它神奇地工作。
URL currentUrl = new URL(urlToSend);
HttpURLConnection connection = (HttpURLConnection) currentUrl.openConnection();
//connection.connect();
connection.getResponseCode();
system.out.println(connection.getURL().toString());
爲什麼我看到這種行爲?我做錯了什麼?
感謝您的幫助。
謝謝,這似乎確實如此! – sangfroid 2010-01-28 00:33:52
謝謝你!一直試圖理解爲什麼人們發出getInputStream()等沒有調用connect()。你剛剛向我澄清。 – Renatinn 2015-09-06 20:38:34