我正在尝试使用Retrofit在服务器中上传图片,但是出现HTTP 400错误。我知道此错误意味着呼叫未正确完成,但是我不知道何时做错了。我只需要上传一张图片。
我尝试添加标头multipart / form-data以及content-type:image / jpeg,也没有添加标头,但它总是抛出400错误。
界面中的此代码:
@Multipart
@POST("https://myweb.com/endpoint")
Observable<DefaultResponse> uploadUserImageRx(
@Part MultipartBody.Part image
);
这里是电话:
var file = // initialized file here
var filePart = MultipartBody.Part.createFormData("file",file.getName(), RequestBody.create(MediaType.parse("image/jpeg"), file))
unsubscribeUploadPhoto()
uploadPhotoSubscription = MyApiClient.getApi()
.uploadUserImageRx(filePart)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : SubscriberAdapter<DefaultResponse>()
{
//Notify everything went well.
})
我希望照片可以上传,但是却出现此错误。
端点的要求是:
授权(标题)为字符串
答案 0 :(得分:0)
此错误表示您没有正确连接标头,因为我认为应该有一个标头,如访问令牌。检查是否有类似的东西,然后像下面那样实现您的API。
@Multipart
@POST("https://myweb.com/endpoint")
Observable<DefaultResponse> uploadUserImageRx(
@Header("Authorization") String authorization,
@Part MultipartBody.Part image
);