Не удается отправить многостраничные данные / данные формы с помощью Volley

У меня проблема с отправкой Params в запросе тела. На почтальоне у меня есть успешный запрос, но с помощью Volley я получаю код ошибки 415 с непредвиденным кодом ответа .

Успешный запрос почтальона

Запрос волейбола

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

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

val BOUNDARY = "AS24adije32MDJHEM9oMaGnKUXtfHq" val MULTIPART_FORMDATA = "multipart/form-data;boundary=" + BOUNDARY 

Функция getBodyContentType должна вернуть MULTIPART_FORMDATA

 override fun getBodyContentType(): String { return MULTIPART_FORMDATA } 

В функции getBody () добавьте границу к параметрам следующим образом:

 override fun getBody(): ByteArray { val params = HashMap<String, String>() params.put("profile_id", "1") params.put("place_name", "La la land") params.put("place_identifier", "10239jodmda") val map: List<String> = params.map { (key, value) -> "--$BOUNDARY\nContent-Disposition: form-data; name=\"$key\"\n\n$value\n" } val endResult = "${map.joinToString("")}\n--$BOUNDARY--\n" return endResult.toByteArray() } 

Поскольку вы уже настраиваете тип содержимого на getBodyContentType (), вам, вероятно , не нужна следующая строка в getHeaders ():

 headers.put("Content-Type", "multipart/form-data") 

Этот ответ SO показывает, как сделать что-то подобное в java: https://stackoverflow.com/a/38238994/3189164

Решение, которое сработало для меня, – это удалить строку, которая задает Content-Type из заголовка!