سپهر مرعشی
6 سال پیش توسط سپهر مرعشی مطرح شد
4 پاسخ

retrofit

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


ثبت پرسش جدید
وحید رضازاده
تخصص : برنامه نویس
@vahidrezazadeh 6 سال پیش مطرح شد
0

@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 6 سال پیش آپدیت شد
0

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


وحید رضازاده
تخصص : برنامه نویس
@vahidrezazadeh 6 سال پیش مطرح شد
0

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


سپهر مرعشی
تخصص : برنامه نویسی اندروید
@sepehr13494 6 سال پیش مطرح شد
0

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

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

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


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

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