Implementasi Java dari API check-host.net
Jika Anda mengalami masalah apa pun, harap laporkan pada pelacak masalah.
Jika Anda hanya ingin berbicara atau butuh bantuan dengan CheckHost4J, silakan bergabung dengan Discord saya.
Untuk menggunakan CheckHost4J dengan Gradle/Maven Anda dapat menggunakan Maven Central, Maven Lenni0451, atau Jitpack.
Anda juga dapat menemukan petunjuk cara menerapkannya ke dalam skrip build Anda di sana.
Jika Anda hanya menginginkan file jar terbaru, Anda dapat mengunduhnya dari GitHub Actions atau menggunakan Rilis.
Perpustakaan ini mengharuskan Anda memiliki Gson di jalur kelas Anda
Kelas utama API adalah CheckHost4J
, yang berisi semua metode untuk berinteraksi dengan API.
final CheckHost4J checkHost = CheckHost4J . INSTANCE ;
Anda dapat menggunakan CheckHost4J.INSTANCE
atau membuat sendiri instance baru CheckHost4J
, dengan membuat instance sendiri, Anda dapat menentukan sendiri IRequester
, yang digunakan untuk mengirim permintaan ke API.
final CheckHost4J checkHost = new CheckHost4J (...);
IRequester
default adalah JavaRequester
, yang dapat diakses melalui JavaRequester.INSTANCE
, Anda juga dapat membuat instance baru menggunakan new JavaRequester("<user-agent>")
.
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" ));
Anda dapat menggunakan metode CheckHost4J#ping
, CheckHost4J#http
, CheckHost4J#tcpPort
, CheckHost4J#udpPort
dan CheckHost4J#dns
untuk mendapatkan ResultNode<T>
di mana T adalah jenis hasil permintaan (misalnya PingResult
, TCPResult
).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ );
Setelah Anda mendapatkan ResultNode<T>
Anda dapat menggunakan tickResults()
untuk memperbarui daftar 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 ());
}
});
Anda juga bisa mendapatkan semua node server yang sedang diperiksa dengan menggunakan metode getNodes()
.
final List < ServerNode > nodes = pingResult . getNodes ();
Paket de.florianmichael.checkhost4j.model.result
berisi semua kelas hasil, yang digunakan untuk menyimpan hasil permintaan.
Untuk mendapatkan daftar semua jenis Permintaan Anda dapat menggunakan enum ResultType
.