Я сейчас использую Retrofit для отправки файла изображения на сервер с идентификатором строки. Я хочу отправить Multipart Image с помощью String Id, используя класс POJO. Возможно ли это?
Мой класс POJO ->
public class ImageRequest {
private String ImageId;
private MultipartBody.Part Image;
public MultipartBody.Part getImage() {
return Image;
}
public void setImage(MultipartBody.Part Image) {
this.Image = Image;
}
public String getId() {
return Id;
}
public void setId(String cropId) {
this.Id = Id;
}
}
Моя функция загрузки ->
private void UploadFiles() {
File uploadFile = fileArrayList.get(0);
if (uploadFile != null) {
Log.d(TAG, "UploadFiles: File Name is -> " + uploadFile.getName());
// Create a request body with file and image media type
RequestBody fileReqBody = RequestBody.create(MediaType.parse("image/*"), uploadFile);
// Create MultipartBody.Part using file request-body,file name and part name
MultipartBody.Part Image = MultipartBody.Part.createFormData("upload", uploadFile.getName(), fileReqBody);
// Id is the name of the Parent Folder...
String Id = uploadFile.getParentFile().getName();
ImageRequest.setImage(Image);
ImageRequest.setId(Id);
Api.uploadImage(ImageRequest, new Callback<BasicResponse>() {
@Override
public void onResponse(Call<BasicResponse> call, Response<BasicResponse> response) {
if(response.body()!=null){
Log.d(TAG, "onResponse: Success" + response.body().getResponse().toString());
}
}
@Override
public void onFailure(Call<BasicResponse> call, Throwable t) {
Log.d(TAG, "onResponse: Failure");
}
});
}
}
Моя функция UploadImage ->
public static void uploadImage(ImageRequest imageRequest, Callback<BasicResponse> callback) {
UploadImageApi uploadImageApi = retrofit.create(UploadImageApi.class);
Call<BasicResponse> call = uploadImageApi.uploadImageFun(imageRequest);
call.enqueue(callback);
}
Это API-интерфейс моего загружаемого изображения ->
public interface UploadImageApi {
@POST(UPLOAD_FILE_URL)
Call<BasicResponse> uploadImageFun(@Body ImageRequest imageRequest);
}
На стороне Spring я извлекаю класс ImageRequest и сопоставляю его с ImageRequest POJO (аналогично Android).
@RequestMapping(value = "/UploadImage",method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
@ResponseBody
public BasicResponse UploadImage(@RequestBody CropImageRequest cropImageRequest) {
basicResponse.setResponse("HEllo there Response is successful");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Exception Occured...");
}
return basicResponse;
}
Я не могу получить изображение на стороне Spring, может кто-нибудь сказать мне мою ошибку, я новичок в Spring и Retrofit. Благодаря.