Проблема в формировании параметров RequestBody для охттп - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть требование добавить несколько деталей курса в Requestbody.

Я должен использовать [] для этого.

Если я хочу добавить несколько курсов, я должен добавить, как показано ниже:

for (int i = 0; i < listStudentCourseData.size(); i++) {
            requestBody.put("fees[]", listStudentCourseData.get(i).getStrFees());
            requestBody.put("course_id[]", listStudentCourseData.get(i).getStrCourseId());
            requestBody.put("duration[]", listStudentCourseData.get(i).getStrDuration());
            requestBody.put("course_status[]", listStudentCourseData.get(i).getStrCourseStatus());
            requestBody.put("certificate[]", listStudentCourseData.get(i).getStrCertificate());
            requestBody.put("book_material[]", listStudentCourseData.get(i).getStrBookMaterial());
            requestBody.put("bag[]", listStudentCourseData.get(i).getStrBag());
        }

Проблема только в одном значениия могу добавить для курсанта. Вы можете видеть, что я использовал цикл для добавления одних и тех же параметров несколько раз (в соответствии с требованием к бэкенду)

Я отладил код и обнаружил, что все значения параметров внутри цикла заменяются последними. Я могу добавить только одну информацию о курсе.

В чем может быть проблема?

Или

Как этого добиться (Добавление нескольких значений - массив)?

1 Ответ

1 голос
/ 09 ноября 2019

. В чем может быть проблема? Проблема в том, что requestBody принимает пары ключ-значение, ключ которых должен быть уникальным. поэтому ваш requestBody сохраняет только последние значения из цикла.

Решение

для (int i = 0; i

requestBody.put ("fee [" + i + "]", listStudentCourseData.get (i) .getStrFees ());

requestBody.put("course_id["+ i + "]",listStudentCourseData.get(i).getStrCourseId());

requestBody.put("duration["+ i + "]", listStudentCourseData.get(i).getStrDuration());

requestBody.put("course_status[" + i + ]",listStudentCourseData.get(i).getStrCourseStatus());

requestBody.put("certificate[" + i + "]", listStudentCourseData.get(i).getStrCertificate());

requestBody.put("book_material[" + i + "]",listStudentCourseData.get(i).getStrBookMaterial());

requestBody.put("bag[" + i + "]", listStudentCourseData.get(i).getStrBag());

}

У меня естьне проверял, но надеюсь, что это работает. счастливое кодирование

...