تنفيذ Java لواجهة برمجة تطبيقات check-host.net
إذا واجهت أية مشكلات، فيرجى الإبلاغ عنها في أداة تعقب المشكلات.
إذا كنت تريد فقط التحدث أو تحتاج إلى مساعدة فيما يتعلق بـ CheckHost4J فلا تتردد في الانضمام إلى Discord الخاص بي.
لاستخدام CheckHost4J مع Gradle/Maven، يمكنك استخدام Maven Central أو Leni0451's Maven أو Jitpack.
يمكنك أيضًا العثور على تعليمات حول كيفية تنفيذه في البرنامج النصي للبناء الخاص بك هناك.
إذا كنت تريد فقط أحدث ملف jar، فيمكنك تنزيله من GitHub Actions أو استخدام الإصدار.
تتطلب هذه المكتبة أن يكون لديك Gson في مسار صفك
الفئة الرئيسية لواجهة برمجة التطبيقات (API) هي CheckHost4J
، وهي تحتوي على جميع الطرق للتفاعل مع واجهة برمجة التطبيقات (API).
final CheckHost4J checkHost = CheckHost4J . INSTANCE ;
يمكنك إما استخدام CheckHost4J.INSTANCE
أو إنشاء مثيل جديد لـ CheckHost4J
بنفسك، ومن خلال إنشاء مثيل خاص يمكنك تحديد IRequester
بنفسك، والذي يُستخدم لإرسال الطلبات إلى واجهة برمجة التطبيقات (API).
final CheckHost4J checkHost = new CheckHost4J (...);
IRequester
الافتراضي هو JavaRequester
، والذي يمكن الوصول إليه عبر JavaRequester.INSTANCE
، ويمكنك أيضًا إنشاء مثيل جديد باستخدام new JavaRequester("<user-agent>")
.
final CheckHost4J checkHost = new CheckHost4J ( new JavaRequester ( "MyUserAgent" ));
يمكنك استخدام الطرق CheckHost4J#ping
و CheckHost4J#http
و CheckHost4J#tcpPort
و CheckHost4J#udpPort
و CheckHost4J#dns
للحصول على ResultNode<T>
حيث T هو نوع نتيجة الطلب (على سبيل المثال PingResult
و TCPResult
).
final ResultNode < PingResult > pingResult = checkHost . ping ( "example.com" , 80 /* max nodes */ );
بعد حصولك على ResultNode<T>
يمكنك استخدام tickResults()
لتحديث قائمة 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 ());
}
});
يمكنك أيضًا الحصول على جميع عقد الخادم التي يتم فحصها باستخدام طريقة getNodes()
.
final List < ServerNode > nodes = pingResult . getNodes ();
تحتوي الحزمة de.florianmichael.checkhost4j.model.result
على جميع فئات النتائج، والتي تُستخدم لتخزين نتيجة الطلبات.
للحصول على قائمة بجميع أنواع الطلبات، يمكنك استخدام تعداد ResultType
.