OkHttp的multipartBody怎么取出key,value数据?

wmjwmj1 2017-11-29 10:03:31
添加数据如:multipartBody.addFormDataPart("username", "张三")

取数据: List<MultipartBody.Part> parts = multipartBody.parts();
for (MultipartBody.Part part : parts) {

}

part只能添加,不能取kv数据啊?谁知道怎么处理吗?

我用拦截器拦截请求,需要multipartBody的kv参数作处理。(不要回答处理后再传)
...全文
1154 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangtao45614 2018-09-12
  • 打赏
  • 举报
回复
只能强行获取了
zhangtao45614 2018-09-12
  • 打赏
  • 举报
回复
MultipartBody multipartBody = (MultipartBody) request.body();
List<MultipartBody.Part> parts=multipartBody.parts();

for (MultipartBody.Part part:parts) {
if(part.body().contentType().type().equals("text")){
Headers headers=part.headers();
for (int i = 0; i <headers.names().size() ; i++) {
Log.d("ParameterInterceptor","headers======value="+headers.value(i));
String value=headers.value(i);//valueform-data; name="article_type"
String replaceValue="form-data; name=";//这段在MultipartBody.Part源码中看到
if(value.contains(replaceValue)){
String key=value.replace(replaceValue,"").replaceAll("\"","");;
Log.d("ParameterInterceptor","MultipartBody======key="+key);
map.put(key,bodyToString(part.body()));
builder.addPart(part);
break;
}
}
}
Log.d("ParameterInterceptor","MultipartBody======"+bodyToString(part.body()));
Log.d("ParameterInterceptor","MultipartBody======type=="+part.body().contentType().type());
}

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧