راکت

retrofit

4 پاسخ

من یک اپ نوشتم که برای ارتباط با سرور از رتروفیت استفاده کردم که از هفته پیش بدون این که تغییری توی اپ داده بشه دیدم که نمیتونه با سرور درست ارتباط برقرار کنه... اومد تست کردم یک پروژه جدید ساختم برای تست و یک بار با رتروفیت و یکبار با http ریکوئست فرستادم واسه سرور و http سالم کار میکرد ولی رتروفیت error time out میده.

ثبت پرسش جدید

پاسخ‌ها

4
وحید رضازاده
وحید رضازاده
@vahidrezazadeh

تخصص: برنامه نویس

@sepehr13494
سلام
چند روزی هست اینترنت مشکل داره و خیلی کند هست
خطای Timeout هم به همین خاطر هست
باید Request Timeout رو افزایش بدین

final OkHttpClient okHttpClient = new OkHttpClient.Builder()
    .readTimeout(60, TimeUnit.SECONDS)
    .connectTimeout(60, TimeUnit.SECONDS)
    .build();
retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .client(okHttpClient)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
سپهر مرعشی
سپهر مرعشی
@sepehr13494

تخصص: برنامه نویسی اندروید

خب پس چرا وقتی درخواست عادی با HttpURLConnection میزنم سریع میاره؟
یعنی به نظر شما درست میشه خودش؟ و اینکه متد شما رو هم تست کردم بعد از 60 ثانیه باز تایم اوت میده

شاید پاسخ شما همین‌جا باشد

وحید رضازاده
وحید رضازاده
@vahidrezazadeh

تخصص: برنامه نویس

@sepehr13494
شاید Timeout ها متفاوته خب
بله باید درست شه
چون نت ایران خیلی ضعیفه معمولا Timeout رو میبریم بالا
ببرین بالا بهتره

سپهر مرعشی
سپهر مرعشی
@sepehr13494

تخصص: برنامه نویسی اندروید

مشکل با اضافه کردن User-Agent به header حل شد به این شکل که در اینترفیس رتروفیت بالای هریک از درخواست ها کد:

@Headers("User-Agent: <Your-App-Name>")

رو اضافه کنید.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام