我必须使用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,并且将参数作为字段,但在电话和邮递员上仍然存在相同的错误,因此我仍然无法使用认为这是服务器端错误