>

@Multipart 요청을하면 각 부분에 이러한 기본 헤더 (Content-Transfer-Encoding, Content-Type)가 추가됩니다. 제거 할 방법이 있습니까?

//REQUEST BODY
--25d35373-d2c3-46a3-969f-f5a1fd5f781a 
Content-Disposition: form-data; name="client_id"
Content-Transfer-Encoding: binary <-- remove this one
Content-Type: application/json; charset=UTF-8 <-- remove this one
Content-Length: 34
"40ccfee680a844780a41fbe23ea89934"
//

참고 : 서버에 액세스 할 수 없으므로 서버가이 헤더를 수락하도록 할 수있는 방법이 없습니다.

  • 답변 # 1

    이 방법으로 스스로 멀티 파트 바디를 만들 수 있습니다 (kotlin 코드이지만 동일한 아이디어가 java로 표현 될 수 있습니다) :

    val mpart = MultipartBody.Builder()
                .addFormDataPart("param", paramValue)
                .addPart(null, someRequestBody).build() // <-- (*) see explanation below
    //thus, service method should looks like this:
    @POST("upload/endpoint")
    fun upload(@Body parts: MultipartBody)
    
    

    (*)-이것은 addPart(headers: Headers, reqBody: RequestBody) 입니다  당신이 null 를 전달할 때 방법  헤더 인수에 Content-Length: 를 제외한 모든 헤더가 제거됩니다.

관련 자료

  • 이전 caching - doctrine 2 cache - repository :: find * ()와 함께 캐시를 사용할 수 있습니까?
  • 다음 헬퍼를 사용하여 잘린 HTML의 경우 link_to가 정의되지 않은 메소드로 끝납니다