I am trying to upload an image on \"https://api.cloudsightapi.com/image_requests\" but after request call i am getting all the fields null into response .i.e status,nam
Upload image file like this:
File file = // initialize file here
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
Call<MyResponse> call = api.uploadPhoto(filePart);//u can send other parameters along with the filePart depending upon ur method signature
CloudSight stopped accepting MultipartBody.Part So we have to send RequestBody i.e file with image name.
I have solved the issue with following steps:
RequestBody requestFile = RequestBody.create(MediaType.parse("image*/"), file);
String descriptionString = "en-US";
RequestBody description = RequestBody.create(MediaType.parse("multipart/form-data"), descriptionString);
apiInterface.uploadPhoto("CloudSight key",description, requestFile);
In retrofit api call:
@Multipart
@POST("https://api.cloudsightapi.com/image_requests")
Call<FileUploadResponse> uploadPhoto(
@Header("Authorization") String authorisation,
@Part("image_request[locale]") RequestBody description,
@Part("image_request[image]\"; filename=\"file.jpg\" " ) RequestBody file);
Hope This helps. Thanks.