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!