البرمجة

تحديد عدد محاولات إعادة المحاولة في OkHttpClient

في OkHttpClient، لا توجد قيمة افتراضية لعدد محاولات إعادة المحاولة بعد فشل الاتصال. بدلاً من ذلك، يمكنك تعيين عدد محدد من محاولات إعادة المحاولة باستخدام setRetryOnConnectionFailure، والتي تقوم بإعادة المحاولة عند فشل الاتصال. لإيقاف عملية المحاولة بعد عدد معين من المرات، يمكنك استخدام معالج تفاوض الاتصالات (ConnectionSpec) لضبط الحد الأقصى لعدد محاولات إعادة المحاولة.

الطريقة الأكثر شيوعًا للقيام بذلك هي استخدام Dispatcher لإنشاء OkHttpClient وتعيين عدد محدد من محاولات إعادة المحاولة. إليك كيفية تعيين عدد محدد من محاولات إعادة المحاولة باستخدام Dispatcher:

java
Dispatcher dispatcher = new Dispatcher(); dispatcher.setMaxRequests(1); // تحديد عدد المحاولات dispatcher.setMaxRequestsPerHost(1); // تحديد عدد المحاولات لكل مضيف OkHttpClient client = new OkHttpClient.Builder() .dispatcher(dispatcher) .build();

في هذا المثال، تم تعيين setMaxRequests و setMaxRequestsPerHost إلى 1 للحد من عدد المحاولات إلى محاولة واحدة فقط. يمكنك تعيينها إلى قيمة أكبر إذا كنت ترغب في محاولة المزيد من المحاولات.

يرجى ملاحظة أنه يجب استخدام Dispatcher في OkHttpClient الخاص بك بدلاً من تعيين RetryOnConnectionFailure مباشرة.

المزيد من المعلومات

في OkHttpClient، يمكنك أيضًا استخدام RetryOnConnectionFailure لتحديد ما إذا كان يجب إعادة المحاولة عند فشل الاتصال. إذا كنت ترغب في تعيين عدد محدد من محاولات إعادة المحاولة، فيجب عليك تعيين قيمة RetryOnConnectionFailure إلى true واستخدام Dispatcher كما هو موضح في المثال السابق.

إذا كنت ترغب في تحديد عدد محدد من محاولات إعادة المحاولة بناءً على حالات معينة، يمكنك استخدام معالج تفاوض الاتصالات (ConnectionSpec) لذلك. يمكنك إنشاء معالج تفاوض الاتصال الخاص بك وتعيينه إلى OkHttpClient باستخدام connectionSpecs، ويمكنك تعيين عدد محدد من محاولات إعادة المحاولة لكل معالج تفاوض الاتصال الفردي. إليك مثالًا بسيطًا:

java
ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) .retryOnConnectionFailure(true) .build(); OkHttpClient client = new OkHttpClient.Builder() .connectionSpecs(Collections.singletonList(spec)) .build();

في هذا المثال، يتم تحديد عدد المحاولات إلى 3 لمعالج تفاوض الاتصال الحديثة فقط. يمكنك تعيين ConnectionSpec لكل نوع من أنواع التفاوض (MODERN_TLS, COMPATIBLE_TLS, CLEARTEXT) وتعيين عدد محدد من محاولات إعادة المحاولة لكل منها بناءً على احتياجاتك.

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

زر الذهاب إلى الأعلى