如何使用改造2将图像上传到服务器

时间:2018-11-17 22:59:41

标签: android retrofit2 image-uploading multipartform-data

我必须使用Retrofit2将图像上传到服务器。

起初一切都很好,但是在发布前我重新检查过之后,API失败了,无法上传图像,但仍然可以使用邮递员工作!

我的代码是:

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);

我的api界面是:

@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);

编辑:我尝试将其转换为urlencoded类型,并将图像转换为字符串Base64,并且将参数作为字段,但在电话和邮递员上仍然存在相同的错误,因此我仍然无法使用认为这是服务器端错误

0 个答案:

没有答案