Heim >Java >javaLernprogramm >Wie rufe ich die umgeleitete URL ab, wenn ich URLConnection in Java verwende?

Wie rufe ich die umgeleitete URL ab, wenn ich URLConnection in Java verwende?

DDD
DDDOriginal
2024-11-06 18:22:031044Durchsuche

How to Retrieve the Redirected URL When Using URLConnection in Java?

So identifizieren Sie die umgeleitete URL in Java

In Java bietet die URLConnection-Klasse eine praktische Methode zum Herstellen von Verbindungen mit Remote-URLs. In Szenarien mit URL-Umleitung ist die abgerufene URL jedoch möglicherweise nicht das endgültige Ziel. Die Ermittlung der tatsächlich weitergeleiteten URL stellt eine Herausforderung dar. In diesem Artikel wird eine Lösung zur Behebung dieses Problems beschrieben.

Beim Zugriff auf URLs über URLConnection ist es möglich, dass der Server eine Zwischenantwort mit einem Location-Header-Feld sendet, das die umgeleitete URL angibt. Die openConnection()-Methode erfasst diese Zwischenantwort jedoch nicht.

Verwendung der getInputStream()-Methode

Um die umgeleitete URL zu erfassen, kann die getInputStream()-Methode dies tun genutzt werden. Diese Methode initiiert den Verbindungsprozess und folgt allen HTTP-Weiterleitungen. Folglich enthält die URLConnection-Instanz nun die Informationen über die umgeleitete URL.

Zur Veranschaulichung zeigt das folgende Codefragment, wie die umgeleitete URL abgerufen wird:

URLConnection con = new URL(url).openConnection();
System.out.println("Original URL: " + con.getURL());
con.connect();
System.out.println("Connected URL: " + con.getURL());
InputStream is = con.getInputStream();
System.out.println("Redirected URL: " + con.getURL());
is.close();

Überprüfung auf Umleitung Vor dem Abrufen von Inhalten

In bestimmten Szenarien kann es erforderlich sein, festzustellen, ob eine Umleitung stattgefunden hat, bevor der Inhalt unter der umgeleiteten URL abgerufen wird. Der folgende Codeausschnitt veranschaulicht diesen Ansatz:

HttpURLConnection con = (HttpURLConnection)(new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
int responseCode = con.getResponseCode();
System.out.println("Response code: " + responseCode);
String location = con.getHeaderField("Location");
System.out.println("Redirected to: " + location);

Das obige ist der detaillierte Inhalt vonWie rufe ich die umgeleitete URL ab, wenn ich URLConnection in Java verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn