Maison  >  Article  >  Java  >  Comment déterminer les URL redirigées en Java : approche standard et vérification préalable du contenu ?

Comment déterminer les URL redirigées en Java : approche standard et vérification préalable du contenu ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 07:52:02373parcourir

How to Determine Redirected URLs in Java: Standard Approach and Pre-Content Check?

Comment déterminer les URL redirigées en Java

En Java, lorsque vous utilisez URLConnection pour accéder à des pages Web, vous pouvez rencontrer des scénarios dans lesquels une URL initiale redirige vers un emplacement différent. La détermination de l'URL redirigée peut être cruciale pour un traitement ou une analyse ultérieurs.

Cet article étudie les méthodes permettant d'obtenir l'URL redirigée à partir des informations du champ d'en-tête et présente une approche standard utilisant URLConnection.

Obtention l'URL redirigée des champs d'en-tête

Auparavant, vous avez extrait l'URL redirigée du champ d'en-tête Set-Cookie, ce qui n'est pas une méthode standard. Cependant, l'accès au champ d'en-tête Location peut fournir un moyen fiable de trouver l'URL redirigée.

Approche standard utilisant URLConnection

  1. Créez une instance URLConnection à l'aide de l'original URL.
  2. Connectez-vous à l'URL à l'aide de connect().
  3. Après la connexion, accédez au contenu à l'aide de getInputStream().
  4. Après avoir récupéré le contenu, appelez getURL() sur l'URLConnection pour obtenir l'URL finale redirigée.
URLConnection con = new URL(url).openConnection();
con.connect();
InputStream is = con.getInputStream();
System.out.println("Redirected URL: " + con.getURL());
is.close();

Déterminer la redirection avant d'obtenir le contenu

Si vous avez besoin de connaître la redirection avant d'obtenir le contenu, suivez ces étapes :

  1. Créez une instance HttpURLConnection.
  2. Définissez setInstanceFollowRedirects(false) pour empêcher les redirections automatiques.
  3. Connectez-vous à l'URL à l'aide de connect() .
  4. Vérifiez le code de réponse (getResponseCode()) pour savoir si une redirection s'est produite.
  5. Si une redirection s'est produite, obtenez le nouvel emplacement en utilisant getHeaderField("Location").
HttpURLConnection con = (HttpURLConnection)(new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
int responseCode = con.getResponseCode();
String location = con.getHeaderField("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