Загрузить изображение с помощью Retrofit2 (PATCH Request) - PullRequest
0 голосов
/ 16 октября 2018

Я знаю, как загрузить изображение на сервер с помощью запроса POST:

// AuthService.kt
@Multipart
@POST("auth/update")
fun updateInfo(
        @Header("Authorization") token: String,
        @Part("fullName") fullName: RequestBody,
        @Part("address") address: RequestBody,
        @Part avatarPic: MultipartBody.Part?
)

// Activity
val file = File(...
val reqFile = RequestBody.create(MediaType.parse("image/*"), file)
val avatarPic = MultipartBody.Part.createFormData("avatarPic", file.name, reqFile)
val fullName = RequestBody.create(MediaType.parse("text/plain"), "Saman")
val address = RequestBody.create(MediaType.parse("text/plain"), "Malekan")
authService.updateInfo(token, fullName, address, avatarPic)...

Я хочу отправить этот запрос методом PATCH, но не могу.Кажется, он не распознает поля.как мне этого добиться?

1 Ответ

0 голосов
/ 16 октября 2018

Я нашел решение сам.Я отправляю запрос через "Method Spoofing".Я просто изменил метод в AuthService.kt на:

@Multipart
@POST("auth/update")
fun updateInfo(
        @Header("Authorization") token: String,
        @Part("fullName") fullName: RequestBody,
        @Part("address") address: RequestBody,
        @Part avatarPic: MultipartBody.Part?,
        @Part("_method") method: RequestBody = RequestBody.create(MediaType.parse("text/plain"), "PATCH")
)

Поле _method внутри запроса приводит к тому, что сервер, действующий как запрос PATCH.

...