【发布时间】:2021-10-03 12:55:10
【问题描述】:
我们目前在Android中使用okhttp3和retrofit2,使用multipart/form-data进行POST类型的网络api调用,api请求和响应如下图所示
如果你观察,请求头 Content-Type 有“multipart/form-data; boundary=xxxxxx-xxxx-xxx....”
下面是代码
@Multipart
@POST("/some-api-method")
Call<SomeResponseBody> someCreateMethod(@PartMap Map<String, RequestBody> options);
我在将自定义请求标头 Content-Type 发送为“multipart/form-data; **charset=utf-8;** boundary=xxxxx-xxxxx-x.....”时遇到问题
基本上我需要更新 Content-Type 标头以适应“charset=utf-8;”
为此,我尝试了以下代码
@Multipart
@POST("/some-api-method")
@Headers({
"Content-Type: multipart/form-data; charset=utf-8"
})
Call<SomeResponseBody> someCreateMethod(@PartMap Map<String, RequestBody> options);
这导致将“charset=utf-8;”添加到 Content-Type,但这会导致删除或不添加现有属性“boundary=xxx-xxxx.....;”
基本上我需要类似下面的东西
Content-Type : "multipart/form-data; charset=utf-8; boundary=xxxx-xxx.....;"
我们将不胜感激。
【问题讨论】:
标签: java android retrofit multipartform-data okhttp