Implémentation Java de l'API check-host.net
Si vous rencontrez des problèmes, veuillez les signaler sur le suivi des problèmes.
Si vous voulez juste parler ou avez besoin d'aide avec CheckHost4J, n'hésitez pas à rejoindre mon Discord.
Pour utiliser CheckHost4J avec Gradle/Maven, vous pouvez utiliser Maven Central, Maven de Lenni0451 ou Jitpack.
Vous pouvez également y trouver des instructions sur la façon de l'implémenter dans votre script de construction.
Si vous souhaitez simplement le dernier fichier jar, vous pouvez le télécharger à partir des actions GitHub ou utiliser la version Release.
Cette bibliothèque nécessite que vous ayez Gson dans votre chemin de classe
La classe principale de l'API est CheckHost4J
, elle contient toutes les méthodes pour interagir avec l'API.
final CheckHost4J checkHost = CheckHost4J . INSTANCE ;
Vous pouvez soit utiliser CheckHost4J.INSTANCE
, soit créer vous-même une nouvelle instance de CheckHost4J
, en créant votre propre instance, vous pouvez définir vous-même l' IRequester
, qui est utilisé pour envoyer les requêtes à l'API.
final CheckHost4J checkHost = new CheckHost4J (...);
L' IRequester
par défaut est JavaRequester
, accessible via JavaRequester.INSTANCE
, vous pouvez également créer une nouvelle instance en utilisant new JavaRequester("<user-agent>")
.
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" ));
Vous pouvez utiliser les méthodes CheckHost4J#ping
, CheckHost4J#http
, CheckHost4J#tcpPort
, CheckHost4J#udpPort
et CheckHost4J#dns
pour obtenir un ResultNode<T>
où T est le type de résultat de la requête (par exemple PingResult
, TCPResult
).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ );
Après avoir obtenu le ResultNode<T>
vous pouvez utiliser tickResults()
pour mettre à jour la liste getResults()
.
// This will update the results list by sending the check-result request to the API,
// This might not update all results, because some might not be finished yet
// Which means you have to call this method multiple times to get all results (e.g. with a delay of 5 seconds)
pingResult . tickResults ();
final Map < ServerNode , PingResult > results = pingResult . getResults ();
results . forEach (( serverNode , result ) -> {
if ( result == null ) { // All results which are not finished yet will be null
System . out . println ( serverNode . name + " is still checking..." );
} else if ( result . getErrorMessage () != null ) {
System . out . println ( serverNode . name + " failed: " + result . getErrorMessage ());
} else {
System . out . println ( serverNode . name + " responded: " + result . getSuccessfulPings () + "/" + result . getTotalPings ());
}
});
Vous pouvez également obtenir tous les nœuds de serveur en cours de vérification à l'aide de la méthode getNodes()
.
final List < ServerNode > nodes = pingResult . getNodes ();
Le package de.florianmichael.checkhost4j.model.result
contient toutes les classes de résultats, qui sont utilisées pour stocker le résultat des requêtes.
Pour obtenir une liste de tous les types de requêtes, vous pouvez utiliser l'énumération ResultType
.