为android @Multipart改装删除默认标题

创建@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" // 

注:我没有访问服务器,所以我不能让服务器接受这些头。

你可以通过你自己的方式来构建多部分的主体(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传递给标题arg时,将删除除Content-Length:之外的所有标题Content-Length: