En Java, plusieurs méthodes peuvent être utilisées pour déterminer la disponibilité d'une URL HTTP. L'approche la plus simple consiste à utiliser la classe java.net.URLConnection :
<code class="java">URL url = new URL(urlString); URLConnection connection = url.openConnection(); connection.connect();</code>
Si la connexion est établie avec succès, l'URL est probablement disponible. Cette méthode, cependant, effectue une requête GET par défaut.
Une autre option pour envoyer un ping à une URL consiste à utiliser java.net.Socket :
<code class="java">try (Socket socket = new Socket()) { socket.connect(new InetSocketAddress(hostname, port), timeout); return true; } catch (IOException e) { return false; }</code>
Cette méthode vous permet de tester explicitement un port spécifique et fournit une indication plus précise de la disponibilité de l'hôte.
Pour envoyer une requête HEAD au lieu d'une requête GET, vous pouvez lancer le URLConnection à HttpURLConnection et définissez la méthode de requête :
<code class="java">HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("HEAD");</code>
Les requêtes HEAD sont généralement plus légères et peuvent être préférées pour les vérifications de disponibilité des URL.
Pour déterminer le disponibilité réelle de l'URL, il ne suffit pas de tester l'accessibilité du serveur. Vous devez également vérifier le code de réponse HTTP. Un code de réponse de 200 indique une demande réussie.
<code class="java">int responseCode = connection.getResponseCode(); if (responseCode != 200) { // Not OK. }</code>
Il est crucial de définir des délais d'attente appropriés pour vos opérations de ping :
<code class="java">connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout);</code>
Cela garantit que le l'opération expire si la connexion ne peut pas être établie ou si la réponse n'est pas reçue dans le délai spécifié.
En combinant ces techniques, voici une méthode utilitaire qui effectue une vérification complète de la disponibilité des URL :
<code class="java">public static boolean pingURL(String url, int timeout) { try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout); connection.setRequestMethod("HEAD"); int responseCode = connection.getResponseCode(); return (200 <= responseCode && responseCode <= 399); } catch (IOException exception) { return false; } }</code>
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!