"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هي طريقة Java المفضلة لـ HTTP URL Ping؟

ما هي طريقة Java المفضلة لـ HTTP URL Ping؟

تم النشر بتاريخ 2024-11-08
تصفح:220

 What\'s the Preferred Java Method for HTTP URL Ping?

طريقة Java المفضلة لـ HTTP URL Ping

للتأكد من توفر عنوان URL HTTP، من الضروري استخدام أسلوب موثوق به يوفر دقة ونتائج فعالة. فيما يلي الخيارات المتاحة في Java:

باستخدام java.net.URLConnection:

يعد النهج الذي ذكرته، باستخدام java.net.URLConnection، خيارًا قابلاً للتطبيق. فهو يسمح لك بإنشاء اتصال والتحقق من إمكانية الوصول إلى عنوان URL.

try {
    URLConnection connection = new URL(url).openConnection();
    connection.connect();
    LOG.info("Service "   url   " available, yeah!");
    available = true;
} catch (Exception e) {
    LOG.info("Service "   url   " unavailable, oh no!", e);
    available = false;
}

تحاكي هذه الطريقة بشكل فعال طلب GET إلى عنوان URL والتحقق من توفره.

اعتبارات إضافية:

    الإغلاق الاتصال:
  • لا تتطلب فئة java.net.URLConnection إغلاقًا صريحًا. يتم التعامل معه ضمنيًا.
  • إرسال طلب HEAD:
  • لإرسال طلب HEAD بدلاً من GET، أرسل URLConnection الذي تم الحصول عليه إلى HttpURLConnection واستخدم setRequestMethod("HEAD") لتحديد طريقة الطلب . ومع ذلك، لاحظ أن بعض خوادم الويب قد تعرض خطأ HTTP 405 (غير مسموح به) لطلب HEAD.
  • اختبار توفر محتوى الخادم:
  • قد لا يكون التحقق من توفر الخادم وحده كافيًا. لتحديد ما إذا كان محتوى عنوان URL متاحًا، تحقق مما إذا كان رمز استجابة HTTP هو 200.
  • استخدام java.net.Socket:
  • هناك خيار آخر وهو استخدام java.net.Socket. تتصل هذه الطريقة مباشرة بعنوان IP الخاص بالخادم والمنفذ، متجاوزة طبقة HTTP.
  • الأساليب البديلة:

java.net .InetAddress#isReachable()
    : يمكن لهذه الطريقة التحقق من توفر المضيف، ولكنها لا تختبر المنفذ 80 بشكل صريح، مما قد يؤدي إلى خطأ السلبيات.
  • مثال على طريقة الأداة المساعدة:

public boolean pingURL(String url, int timeout) { url = url.replaceFirst("^https", "http"); // تجنب استثناءات SSL يحاول { اتصال HttpURLConnection = (HttpURLConnection) عنوان URL جديد(url).openConnection(); Connection.setConnectTimeout(timeout); Connection.setReadTimeout(timeout); Connection.setRequestMethod("HEAD"); int ResponseCode = Connection.getResponseCode(); return (200

تستخدم هذه الطريقة طلب HEAD مع مهلة محددة للتحقق من توفر عنوان URL. يعود صحيحًا إذا كان رمز الاستجابة في النطاق 200-399، مما يشير إلى اتصال ناجح.
            
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3