Maison > Java > javaDidacticiel > le corps du texte

Comment surveiller efficacement la disponibilité des URL en Java ?

Susan Sarandon
Libérer: 2024-11-01 23:27:29
original
201 Les gens l'ont consulté

How to Efficiently Monitor URL Availability in Java?

Surveillance efficace de la disponibilité des URL en Java

Détermination de la disponibilité des URL

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

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.

Méthodes alternatives

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

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.

Option de requête HEAD

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

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.

Vérification du code de réponse

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

Délais d'attente

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

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é.

Exemple complet

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>
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
À 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!