Java 如何在使用Android和改型的服务器上上传图片?

Java 如何在使用Android和改型的服务器上上传图片?,java,android,kotlin,retrofit,Java,Android,Kotlin,Retrofit,我试图上传一个图片在服务器与改装,但我得到HTTP 400错误。我知道这个错误意味着电话打得不正确,但我不知道我什么时候做错了。我只需要上传一张图片 我尝试过添加标题多部分/表单数据和内容类型:image/jpeg,也没有,但它总是抛出400个错误 界面中的此代码: @Multipart @POST("https://myweb.com/endpoint") Observable<DefaultResponse> uploadUserImageRx( @Part Multip

我试图上传一个图片在服务器与改装,但我得到HTTP 400错误。我知道这个错误意味着电话打得不正确,但我不知道我什么时候做错了。我只需要上传一张图片

我尝试过添加标题多部分/表单数据和内容类型:image/jpeg,也没有,但它总是抛出400个错误

界面中的此代码:

@Multipart
@POST("https://myweb.com/endpoint")
Observable<DefaultResponse> uploadUserImageRx(
    @Part MultipartBody.Part image
);
@Multipart
@职位(”https://myweb.com/endpoint")
可观察的上传UserImageRx(
@零件多零件体。零件图像
);
这里是电话:

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.
        })
var file=//此处已初始化文件
var filePart=MultipartBody.Part.createFormData(“文件”,file.getName(),RequestBody.create(MediaType.parse(“image/jpeg”),文件))
取消订阅上传照片()
uploadPhotoSubscription=MyApiClient.getApi()
.uploadUserImageRx(文件部分)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(对象:SubscriberAdapter()
{
//一切顺利。
})
我希望照片上传,但我得到了这个错误

端点的要求是:


作为字符串的授权(头)

此错误意味着您没有正确附加头,因为我认为应该有一个类似头的访问令牌。检查是否有类似的情况,然后像下面那样实现您的API

@Multipart
@POST("https://myweb.com/endpoint")
Observable<DefaultResponse> uploadUserImageRx(
    @Header("Authorization") String authorization,  
    @Part MultipartBody.Part image
); 
@Multipart
@职位(”https://myweb.com/endpoint")
可观察的上传UserImageRx(
@标题(“授权”)字符串授权,
@零件多零件体。零件图像
); 

此错误意味着您没有正确附加头,因为我认为应该有一个类似于访问令牌的头。检查是否有类似的情况,然后像下面那样实现您的API

@Multipart
@POST("https://myweb.com/endpoint")
Observable<DefaultResponse> uploadUserImageRx(
    @Header("Authorization") String authorization,  
    @Part MultipartBody.Part image
); 
@Multipart
@职位(”https://myweb.com/endpoint")
可观察的上传UserImageRx(
@标题(“授权”)字符串授权,
@零件多零件体。零件图像
); 

你和邮递员试过这个吗?它能用吗postman@Dulanga我尝试过,但参数相同。我想我在标题或调用中缺少任何要求。API在标题中请求授权,但我不知道如何添加它。请检查下面我的答案,当您调用登录请求时,您将收到访问令牌,并在此API中作为授权传递。您是否与邮递员一起尝试过?它能用吗postman@Dulanga我尝试过,但参数相同。我想我在标题或调用中缺少任何要求。API在标题中请求授权,但我不知道如何添加它。请检查下面我的答案,当您调用登录请求时,您将收到访问令牌,并在此API中作为授权传递