>source

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.
        })

사진이 업로드 될 것으로 예상하지만 대신이 오류가 발생합니다.

엔드 포인트의 요구 사항은 다음과 같습니다.

문자열 권한 부여 (헤더)


  • 답변 # 1

    이 오류는 액세스 토큰과 같은 헤더가 있어야한다고 생각하여 헤더를 올바르게 첨부하지 않았 음을 의미합니다. 이와 같은 것이 있는지 확인한 다음 아래와 같이 API를 구현하십시오.

    @Multipart
    @POST("https://myweb.com/endpoint")
    Observable<DefaultResponse> uploadUserImageRx(
        @Header("Authorization") String authorization,  
        @Part MultipartBody.Part image
    );
    
    

관련 자료

  • 이전 node.js - 수정 방법 - 노드 버전 업그레이드 후 "eproto"오류
  • 다음 python - 특정 점을 중심으로 목록의 점을 줄이는 방법은 무엇입니까?