Interface:image avec retrofit 2
@Multipart
@POST("emp/passportupload")
Single<ApiResponse> uploadPassportImage(@Query("passportnumber") String passportNumber, @Part MultipartBody.Part file);
Appel api:
File file = new File(model.getImage().getPath());
if (!file.exists()) return null;
RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);
MultipartBody.Part filePart = MultipartBody.Part.createFormData(ApiConstant.PICTURE_UPLOAD_PARAM, file.getName(), requestBody);
dataService.uploadPassportImage(map, filePart)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
J'utilise cette méthode pour télécharger l'image sur le serveur mais le serveur ne peut pas valider comme une image, me donnant ainsi une réponse comme
"Le fichier fourni n'est pas valide P icture S'il vous plaît fournir un PNG/JPG Fichier »
Mais, je l'ai téléchargé le même fichier image par postier et il a réussi est la demande ici. (NB: passportnumber est un params, pas une des données de formulaire)
Dans mon cas, la différence est userid est pas de-données, il est un params. J'ai essayé cette solution, et obtenant la réponse d'erreur car le serveur n'a pas pu trouver la valeur de params. – CodeCameo