PDA

View Full Version : سوال: مشکل اجرای تکراری در api



majid_vb_2008
پنج شنبه 28 آذر 1398, 10:07 صبح
سلام دوستان
من با asp mvc برای برنامه اندرویدی خودم api نوشتم و موردی نداره و همه چیز درست کار می کنه .
ولی گاهی (یعنی تقریبا همیشه) در زمانی که api رو از سمت اندروید فراخانی می کنم دو بار اجرا میشه با postman تست کردم درسته یک بار اجرا میشه . سمت اندروید رو هم بررسی کردم در خواست یک بار ارسال میشه . ولی نمیدونم چرا api وقتی از داخل برنامه اندروید بهش درخواست داده میشه و اجرا میشه دو بار اجرا میشه
گیچ شدم ممنون میشم راهنمایی کنید منو

مهدی کرامتی
پنج شنبه 28 آذر 1398, 19:42 عصر
ماجرایی که گفتید در بروزر کروم هم دیده میشه. ماجرا از این قراره که بعضی کلاینتها مثل کتابخانه مورد استفاده شما برای اتصال به وب سرویس (احتمالا Volley باشه) اول یک بار با ارسال یک Request که فقط شامل هدر ریکوئست هست چک می کنه آیا آدرس درخواستی در سرور وجود داره و کد وضعیت پاسخ 200 هست یا نه، و اگر بود اون وقت Request اصلی رو ارسال می کنه.

معمولا ریکوئست اول که ارسال میشه فاقد بخش Body هست و وجود بخش Body در ریکوئست رو با یک if ساده میشه بررسی کرد.

majid_vb_2008
دوشنبه 02 دی 1398, 13:18 عصر
خیلی ممنون از وقتی که گذاشتین
اگر ممکنه بیشتر راهنمایی کنید
این بررسی رو سمت سرور باید انجام بدم
با توجه به اینکه با asp mvc طراحی شده راهنماییم کنید

majid_vb_2008
شنبه 14 دی 1398, 14:44 عصر
خیلی ممنون از وقتی که گذاشتین
اگر ممکنه بیشتر راهنمایی کنید
این بررسی رو سمت سرور باید انجام بدم
با توجه به اینکه با asp mvc طراحی شده راهنماییم کنید

دوستان کسی می تونه بیشتر راهنماییم کنه ؟

majid_vb_2008
چهارشنبه 16 بهمن 1398, 21:22 عصر
دوستان می تونید کمک کنید ؟؟

mehdi.safavie
پنج شنبه 17 بهمن 1398, 18:04 عصر
درود;


همه کتاب خانه هایی که برای استفاده از وب سرویس های Rest در حال حاظر در حال کار کردن هستن این موضوع درشون هست.
دلیل اون رو هم جناب مهندس کرامتی عرض کردند که چرا.


اگر از Volley استفاده میکنید ، میتونین با یه همچین کدی مشکل رو برطرف کنین:


JsonObjectRequest jsonObjReq = new JsonObjectRequest(...);
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
0,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

کافیه که Retry Policy رو برای درخواست ها به این صورت که کدش رو نوشتم تنظیم کنین.

* این مشکل رو فقط از سمت اندروید باید اصلاح کنید. ربطی به وبسرویس ( ASP یا هر زبان دیگه ای ) نداره.

majid_vb_2008
پنج شنبه 08 خرداد 1399, 23:50 عصر
تشکر بابت وقتی که گذاشتید مشکلم حل شد.