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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-11 12:33:03256parcourir

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();

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);

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!

Déclaration:
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