Web アプリケーションで自動テストを行うプログラムを作成しようとしています。これを実現するために、HttpURLConnection を使用して接続を開きます。
テストしようとしているページの 1 つが 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());
この動作が見られるのはなぜですか? 私は何か間違ったことをしていますか?
助けてくれてありがとう。