إرسال معلمات POST ديناميًا باستخدام OKHTTP 3.x في Android
في إطار استخدام مكتبة OKHTTP 3.x في تطبيق Android الخاص بك، تواجه تحديًا في إرسال معلمات الطلب (post parameters) بشكل دينامي أو في حلقة. في الإصدار الثالث من OKHTTP، تمت إزالة فئة FormEncodingBuilder التي كنت تستخدمها في الإصدار الثاني. ومع ذلك، يمكنك تحقيق نفس الغرض باستخدام فئة MultipartBody.Builder.
لتحقيق هذا الهدف، يمكنك كتابة كود يقوم بتكرار العملية في حلقة لإضافة المعلمات الخاصة بك إلى جسم الطلب. يمكنك تعديل الكود الحالي الخاص بك كما يلي:
-
تشغيل Genymotion على openSUSE Leap 42.124/03/2024
-
البدء في استخدام GPS في تطبيقات Android29/03/2024
javaMultipartBody.Builder requestBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM);
for (int i = 1; i <= 5; i++) {
String paramName = "Param" + i;
String paramValue = "value" + i;
requestBodyBuilder.addFormDataPart(paramName, paramValue);
}
RequestBody formBody = requestBodyBuilder.build();
Request request = new Request.Builder()
.url("url")
.post(formBody)
.build();
يقوم الكود أعلاه ببناء جسم الطلب باستخدام MultipartBody.Builder، ثم يقوم بإضافة المعلمات في حلقة. يمكنك تعديل قيم المتغيرات المستخدمة وفقًا لاحتياجاتك الخاصة.
هذا الأسلوب يمكن أن يكون أكثر قابلية للتوسع والتخصيص في مقارنة مع الإصدار 2.x، حيث يمكنك بناء جسم الطلب بشكل دينامي داخل حلقة وفقًا لعدد المعلمات التي تحتاج إلى إرسالها.
المزيد من المعلومات
إليك المزيد من المعلومات حول كيفية إرسال معلمات الطلب بشكل دينامي باستخدام OKHTTP 3.x في تطبيق Android الخاص بك:
-
MultipartBody.Builder:
MultipartBody.Builder
هو واجهة لبناء جسم الطلب بنوعmultipart/form-data
، الذي يسمح بإرسال بيانات ثنائية الجزء مثل الصور والملفات.- يمكنك استخدام
addFormDataPart
لإضافة أجزاء منفصلة إلى جسم الطلب.
-
الحلقة (Loop):
- في الحلقة، يتم تكرار عملية إضافة المعلمات باستخدام
addFormDataPart
حتى تتم إضافة جميع المعلمات المطلوبة.
- في الحلقة، يتم تكرار عملية إضافة المعلمات باستخدام
-
تخصيص القيم:
- يمكنك تخصيص أسماء وقيم المعلمات وفقًا لاحتياجات تطبيقك، حيث يُستخدم المتغير
paramName
لتوليد أسماء المعلمات وparamValue
لتوليد قيم المعلمات في كل تكرار.
- يمكنك تخصيص أسماء وقيم المعلمات وفقًا لاحتياجات تطبيقك، حيث يُستخدم المتغير
-
Request:
- يتم بناء الطلب باستخدام
Request.Builder
، ومن ثم يتم تعيين الطلب ليكون POST ويحتوي على جسم الطلب الديناميكي الذي تم بناؤه.
- يتم بناء الطلب باستخدام
-
قيم URL:
- يُستبدل
"url"
بعنوان الويب الذي تريد إرسال الطلب إليه.
- يُستبدل
-
قابلية التوسع والتخصيص:
- يُظهر هذا النهج قابلية التوسع والتخصيص حيث يمكنك بسهولة تعديل عدد المعلمات أو تخصيص الأسماء والقيم وفقًا لمتطلبات تطبيقك.
هذا النهج يسمح لك بإرسال معلمات الطلب بشكل دينامي في حلقة، مما يسهل التعامل مع عدد متغير من المعلمات بطريقة مرنة وبسيطة.