Tôi đang cố gắng viết chương trình để thực hiện kiểm tra tự động trên webapp của tôi. Để thực hiện điều này, tôi mở một kết nối bằng cách sử dụng HttpURLConnection.Java HttpURLConnection không kết nối khi tôi gọi kết nối()
Một trong những trang mà tôi đang cố gắng kiểm tra thực hiện chuyển hướng 302. mã kiểm tra của tôi trông như thế này:
URL currentUrl = new URL(urlToSend);
HttpURLConnection connection = (HttpURLConnection) currentUrl.openConnection();
connection.connect();
system.out.println(connection.getURL().toString());
Vì vậy, chúng ta hãy nói rằng urlToSend là http://www.foo.com/bar.jsp, và rằng trang này chuyển hướng bạn đến http://www.foo.com/quux.jsp. Tuyên bố println của tôi sẽ in ra http://www.foo.com/quux.jsp, phải không?
WRONG.
Chuyển hướng không bao giờ xảy ra và nó sẽ in ra URL gốc. Tuy nhiên, nếu tôi thay đổi chuyển đổi dòng connection.connect() với một cuộc gọi đến connection.getResponseCode(), nó hoạt động một cách kỳ diệu.
URL currentUrl = new URL(urlToSend);
HttpURLConnection connection = (HttpURLConnection) currentUrl.openConnection();
//connection.connect();
connection.getResponseCode();
system.out.println(connection.getURL().toString());
Tại sao tôi thấy hành vi này? Tôi có làm gì sai không?
Cảm ơn sự giúp đỡ.
Cảm ơn bạn, điều này có vẻ như vậy! – sangfroid
Cảm ơn bạn vì điều này! Đã cố gắng hiểu tại sao mọi người đang phát hành getInputStream() và như vậy mà không bao giờ gọi kết nối(). Bạn chỉ cần làm rõ điều đó với tôi. – Renatinn