Java-Implementierung der check-host.net-API
Wenn Sie auf Probleme stoßen, melden Sie diese bitte im Issue-Tracker.
Wenn Sie einfach nur reden möchten oder Hilfe bei CheckHost4J benötigen, können Sie sich gerne meinem Discord anschließen.
Um CheckHost4J mit Gradle/Maven zu verwenden, können Sie Maven Central, Lenni0451's Maven oder Jitpack verwenden.
Dort finden Sie auch Anweisungen zur Implementierung in Ihr Build-Skript.
Wenn Sie nur die neueste JAR-Datei benötigen, können Sie diese über die GitHub-Aktionen herunterladen oder die Version verwenden.
Für diese Bibliothek muss Gson in Ihrem Klassenpfad vorhanden sein
Die API-Hauptklasse ist CheckHost4J
. Sie enthält alle Methoden zur Interaktion mit der API.
final CheckHost4J checkHost = CheckHost4J . INSTANCE ;
Sie können entweder die CheckHost4J.INSTANCE
verwenden oder selbst eine neue Instanz von CheckHost4J
erstellen. Durch die Erstellung einer eigenen Instanz können Sie den IRequester
selbst definieren, der zum Senden der Anfragen an die API verwendet wird.
final CheckHost4J checkHost = new CheckHost4J (...);
Der Standard IRequester
ist JavaRequester
, auf den über JavaRequester.INSTANCE
zugegriffen werden kann. Sie können auch eine neue Instanz mit new JavaRequester("<user-agent>")
erstellen.
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" ));
Sie können die Methoden CheckHost4J#ping
, CheckHost4J#http
, CheckHost4J#tcpPort
, CheckHost4J#udpPort
und CheckHost4J#dns
verwenden, um einen ResultNode<T>
zu erhalten, wobei T der Ergebnistyp der Anfrage ist (z. B. PingResult
, TCPResult
).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ );
Nachdem Sie den ResultNode<T>
erhalten haben, können Sie tickResults()
verwenden, um die getResults()
Liste zu aktualisieren.
// 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 ());
}
});
Sie können auch alle Serverknoten abrufen, die überprüft werden, indem Sie die Methode getNodes()
verwenden.
final List < ServerNode > nodes = pingResult . getNodes ();
Das Paket de.florianmichael.checkhost4j.model.result
enthält alle Ergebnisklassen, die zur Speicherung des Ergebnisses der Anfragen verwendet werden.
Um eine Liste aller Anforderungstypen zu erhalten, können Sie die ResultType
Enumeration verwenden.