Ich versuche, ein Programm zu schreiben, das automatisierte Testen auf meine Webapp zu tun. Um dies zu erreichen, öffne ich eine Verbindung mit HttpURLConnection.Java HttpURLConnection Verbindung nicht, wenn ich eine Verbindung() aufrufen
Eine der Seiten, die ich zu Test bin versucht, führt eine 302-Umleitung. Mein Test-Code sieht wie folgt aus:
URL currentUrl = new URL(urlToSend);
HttpURLConnection connection = (HttpURLConnection) currentUrl.openConnection();
connection.connect();
system.out.println(connection.getURL().toString());
So lassen Sie uns sagen, dass urlToSend ist http://www.foo.com/bar.jsp, und dass diese Seite leitet Sie auf http://www.foo.com/quux.jsp. Meine println-Anweisung sollte http://www.foo.com/quux.jsp ausdrucken, oder?
FALSCH.
Die Umleitung nie passiert, und es druckt die Original-URL aus. Wenn ich jedoch die connection.connect() - Zeile mit einem Aufruf von connection.getResponseCode() umschalte, funktioniert das auf magische Weise.
URL currentUrl = new URL(urlToSend);
HttpURLConnection connection = (HttpURLConnection) currentUrl.openConnection();
//connection.connect();
connection.getResponseCode();
system.out.println(connection.getURL().toString());
Warum sehe ich dieses Verhalten? Mache ich etwas falsch?
Danke für die Hilfe.
Danke, das scheint der Fall zu sein! – sangfroid
Vielen Dank dafür! Ich habe versucht zu verstehen, warum Leute getInputStream() und dergleichen ausgeben, ohne jemals connect() aufzurufen. Das hast du mir gerade klargestellt. – Renatinn