Я пытаюсь сделать POST-данные формы для сервера, используя Retrofit 2.0
RequestBody fdrcdRcd = RequestBody.create(MediaType.parse("text/plain"), drcdRcd);
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(),
RequestBody.create(MediaType.parse("image/*"), file));
B2BService apiService = B2BClient.getClient().create(B2BService.class);
Call<RequestBaseModel> call = apiService.SpotImgUploadFile(fdrcdRcd , filePart);
И Сервис, как это:
@POST("/drcdSpotImgUploadFile")
@Multipart
Call<RequestBaseModel> SpotImgUploadFile(@Part("old_DrcdRcd") RequestBody fname, @Part MultipartBody.Part file);
Вся другая информация хранится, кроме моего изображения не храню. пока я тестирую с почтальоном, все работает. И сгенерированный код для Java - OkHttp:
OkHttpClient client = new OkHttpClient().newBuilder() .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("old_DrcdRcd", "12312312")
.addFormDataPart("file","/C:/Users/Administrator/Pictures/IMG_7983.JPG",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("/C:/Users/Administrator/Pictures/IMG_7983.JPG")))
.build();
Request request = new Request.Builder()
.url("xxxxxxxxxxxxxxxxxxxx/drcdSpotImgUploadFile")
.method("POST", body)
.addHeader("Authorization", "xx-_G563tKhmiY")
.addHeader("Cookie",
"connect.sid=s%3AyXnQNtJGuiMKBrBIPJ4LbcMs_pWhVEzM.NYTWbVrWbchl0lgG9wqt%2BysE%2Fbxr%2FKDrP1lPzSsy4vk")
.build();
Response response = client.newCall(request).execute();
Сервер возвращает сообщение об ошибке PayloadTooLargeError: request entity too large
.
Итак, как загрузить изображение с помощью Дооснащение 2 ?