0

I have to upload an image to server using Retrofit2.

Everything has worked fine at first, but after I re-check it before the release the API failed that can't upload the image but still works using postman!

My code is :

MultipartBody.Part imagePart = MultipartBody.Part.createFormData("image",
            image.getFilename(), RequestBody.create(MediaType.get(image.getMimeType()), image.getFile()));

RequestBody sessionPart = RequestBody.create(MultipartBody.FORM, sessionToken);
RequestBody userIdPart = RequestBody.create(MultipartBody.FORM, userId);
RequestBody pictureTypePart = RequestBody.create(MultipartBody.FORM, pictureType.pictureTypeValue());

return dubaingNetwork.uploadProfilePic(accessToken,userIdPart,sessionPart,imagePart,pictureTypePart);

My api interface is:

@Multipart
@POST(Urls.UPLOAD_PROFILE_PIC)
Observable<UploadProfilePicResponse> uploadProfilePic(@Header(ACCESS_TOKEN_FIELD_NAME) String accessToken,
                                                      @Part(USER_ID_FIELD_NAME) RequestBody userId,
                                                      @Part(SESSION_TOKEN_FIELD_NAME) RequestBody sessionToken,
                                                      @Part MultipartBody.Part image,
                                                      @Part("image_type") RequestBody pictureType);

Edit: I tried to convert it to urlencoded type with the image converted to string Base64 and the parameters as a field but still the same error on phone and in postman still works, so I don't think it's a server-side error

Ali Habbash
  • 777
  • 2
  • 6
  • 29

0 Answers0