неверные параметры запроса: неверное кодирование% - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь загрузить изображение (jpg) через Retrofit / Multipart.Api всегда возвращает код 400 с «недопустимыми параметрами запроса: недопустимое кодирование%». Я не знаю, что случилось.

Мой интерфейс:

@Headers("Content-type: application/x-www-form-urlencoded", "Accept: application/vnd.mypb+json; version=7")
@POST("/alerts/actions/unknown_pid")
@Multipart
fun uploadPhoto(@Part body: MultipartBody.Part): Call<String?>

Мой метод загрузки фотографий с веб-службы:

fun uploadPhoto(bitmap: Bitmap) {
    val imageFile = File(context.cacheDir, "image.jpg")

    val baos = ByteArrayOutputStream()
    bitmap.compress(Bitmap.CompressFormat.JPEG, 15, baos)
    val byteArray = baos.toByteArray()

    val fos = FileOutputStream(imageFile)
    fos.write(byteArray)
    fos.flush()
    fos.close()

    val filePart = RequestBody.create(MediaType.parse("image/*"), imageFile)
    val body = MultipartBody.Part.createFormData("document[file]", "photo.jpg", filePart)

    service.uploadPhoto(body).enqueue(object : LoggingCallback<String?>() {
        override fun onSuccess(responseBody: String?) {
            EventBus.getDefault().post(OnPhotoUploadSuccessfulEvent())
        }

        override fun onFailure(response: Response<String?>) {
            EventBus.getDefault().post(OnPhotoUploadFailedEvent())
        }
    })
}

Ответ Чарльза: Charles response

1 Ответ

0 голосов
/ 25 февраля 2019

Ваш заголовок неверен.

Вы можете удалить заголовки Content-type: application/x-www-form-urlencoded

или вам следует изменить значение на Content-type: multipart/form-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...