Допустим, у меня есть эта модель :
data class PhotoRequest(
@SerializedName("page_number")
val pageNumber: Int,
@SerializedName("image")
val requestBody: MultipartBody.Part
)
multipart создается с использованием этого:
val photo = File(picturePath)
val requestFile = RequestBody.create(
MediaType.parse("image/jpeg"),
photo
)
return MultipartBody.Part.createFormData("images", photo.name, requestFile)
Модификация строитель:
val builder = Retrofit.Builder()
.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gsonBuilder.create()))
А это интерфейс Модификация :
@Multipart
@POST("my_endpoint")
fun sendExample(
@Part("name") name: String,
@Part("email") email: String,
@Part("images[]") images: List<PhotoRequest>
): Single<String>
То, что я пытаюсь сделать, это отправить кратныеизображения вместе с параметром на изображение, в данном случае это номер страницы.
Сервер (rails) не распознает изображение ни в одном запросе, фактически содержимое внутри ключа «images»полученный в виде массива строк .
"images"=>["{\"page_number\":1,\"image\":{\"headers\":{\"namesAndValues\":[\"Content-Disposition\",\"form-data; name=\\\"image\\\"; filename=\\\"1537970501549.jpg\\\"\"]]}}}"]
Кто-нибудь знает, как правильно отправить этот запрос?или как вручную обработать изображения со стороны рельсов?