Maison > Java > javaDidacticiel > Comment déterminer l'URL redirigée en Java ?

Comment déterminer l'URL redirigée en Java ?

Mary-Kate Olsen
Libérer: 2024-11-11 12:33:03
original
269 Les gens l'ont consulté

How to Determine the Redirected URL in Java?

Détermination de l'URL de redirection en Java

Lors de l'accès à des pages Web à l'aide d'URLConnection, il est courant de rencontrer des redirections. Cela se produit lorsqu'une URL pointe vers une autre destination. Pour déterminer l'URL redirigée, nous devons comprendre comment fonctionnent les redirections HTTP.

En général, un serveur répond avec un code d'état 3xx (par exemple, 301, 302) indiquant une redirection. La réponse comprend un champ d'en-tête « Location » précisant la nouvelle destination. Cependant, l'URLConnection ne suit pas automatiquement les redirections.

Accès à l'URL redirigée

Pour obtenir l'URL redirigée, nous pouvons appeler manuellement getInputStream() sur l'URLConnection après la première étape. connexion. Cette action force l'établissement de la connexion, et le serveur envoie la réponse finale, incluant l'en-tête "Location".

URLConnection con = new URL(url).openConnection();
con.connect();
System.out.println("Original URL: " + con.getURL());
InputStream is = con.getInputStream();
System.out.println("Redirected URL: " + con.getURL());
is.close();
Copier après la connexion

Accès à l'en-tête Location

Dans certains cas , nous souhaiterons peut-être accéder à l'en-tête "Location" avant de récupérer le contenu redirigé. Pour cela, nous pouvons utiliser HttpURLConnection et définir setInstanceFollowRedirects(false):

HttpURLConnection con = (HttpURLConnection) (new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
System.out.println("Response code: " + con.getResponseCode());
String location = con.getHeaderField("Location");
System.out.println("Location header: " + 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal