Maison > Java > javaDidacticiel > le corps du texte

Comment récupérer l'URL redirigée lors de l'utilisation d'URLConnection en Java ?

DDD
Libérer: 2024-11-06 18:22:03
original
946 Les gens l'ont consulté

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

Comment identifier l'URL redirigée en Java

En Java, la classe URLConnection offre une méthode pratique pour établir des connexions avec des URL distantes. Toutefois, dans les scénarios impliquant la redirection d'URL, l'URL récupérée peut ne pas être la destination finale. Déterminer l’URL redirigée réelle pose un défi. Cet article présente une solution pour résoudre ce problème.

Lors de l'accès aux URL via URLConnection, il est possible que le serveur envoie une réponse intermédiaire avec un champ d'en-tête Location indiquant l'URL redirigée. Cependant, la méthode openConnection() ne capture pas cette réponse intermédiaire.

Utilisation de la méthode getInputStream()

Pour capturer l'URL redirigée, la méthode getInputStream() peut être utilisé. Cette méthode lance le processus de connexion et suit toutes les redirections HTTP. Par conséquent, l'instance URLConnection contient désormais les informations sur l'URL redirigée.

À titre d'illustration, l'extrait de code suivant montre comment récupérer l'URL redirigée :

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();
Copier après la connexion

Vérification de la redirection Avant la récupération de contenu

Dans certains scénarios, il peut être nécessaire de déterminer si une redirection a eu lieu avant de récupérer le contenu à l'URL redirigée. L'extrait de code suivant illustre cette approche :

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);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!