আপনি অন্তর্নিহিত HTTP ক্লায়েন্টের সময়সীমা সেট করতে পারেন। আপনি যদি ক্লায়েন্ট নির্দিষ্ট না করে থাকেন তবে retrofit ডিফল্ট সংযোগ এবং পাঠের সময়সীমা সহ একটি তৈরি করবে। আপনার নিজস্ব সময়সীমা সেট করতে আপনাকে নিজের ক্লায়েন্টটি কনফিগার করতে হবে এবং এটি সরবরাহ করতে হবে RestAdapter.Builder
।
স্কয়ার থেকেও OkHttp ক্লায়েন্ট ব্যবহার করা একটি বিকল্প use
1. লাইব্রেরি নির্ভরতা যুক্ত করুন
বিল্ড.gradle এ, এই লাইনটি অন্তর্ভুক্ত করুন:
compile 'com.squareup.okhttp:okhttp:x.x.x'
x.x.x
কাঙ্ক্ষিত গ্রন্থাগার সংস্করণটি কোথায় ।
2. ক্লায়েন্ট সেট করুন
উদাহরণস্বরূপ, আপনি যদি 60 সেকেন্ডের সময়সীমা নির্ধারণ করতে চান তবে সংস্করণ 2 এর পূর্বে রেট্রোফিটের জন্য এবং সংস্করণ 3 (নতুন সংস্করণের জন্য, সম্পাদনাগুলি দেখুন ) এর আগে ওখট্টপেটের জন্য এইভাবে করুন :
public RestAdapter providesRestAdapter(Gson gson) {
final OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setReadTimeout(60, TimeUnit.SECONDS);
okHttpClient.setConnectTimeout(60, TimeUnit.SECONDS);
return new RestAdapter.Builder()
.setEndpoint(BuildConfig.BASE_URL)
.setConverter(new GsonConverter(gson))
.setClient(new OkClient(okHttpClient))
.build();
}
সম্পাদনা 1
ওখটিপিপি সংস্করণগুলির জন্য 3.x.x
, আপনাকে নির্ভরতাটি এইভাবে সেট করতে হবে:
compile 'com.squareup.okhttp3:okhttp:x.x.x'
এবং বিল্ডার প্যাটার্ন ব্যবহার করে ক্লায়েন্টটি সেট করুন:
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.build();
টাইমআউটগুলিতে আরও তথ্য
সম্পাদনা 2
Retrofit সংস্করণগুলি যেহেতু 2.x.x
বিল্ডার প্যাটার্নটিও ব্যবহার করে, তাই উপরের রিটার্ন ব্লকটিকে এটিতে পরিবর্তন করুন:
return new Retrofit.Builder()
.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
যদি আমার providesRestAdapter
পদ্ধতির মতো কোনও কোড ব্যবহার করে থাকেন , তবে পদ্ধতিটির রিটার্নের ধরণটি রিট্রোফিটে পরিবর্তন করুন ।
Retrofit 2 এ আরও তথ্য - 1.9 থেকে আপগ্রেড গাইড
PS: যদি আপনার minSdkVersion 8 এর চেয়ে বেশি হয়, আপনি ব্যবহার করতে পারেন TimeUnit.MINUTES
:
okHttpClient.setReadTimeout(1, TimeUnit.MINUTES);
okHttpClient.setConnectTimeout(1, TimeUnit.MINUTES);
ইউনিট সম্পর্কে আরও তথ্যের জন্য, টাইমউনিট দেখুন ।