Android OkHttp Post上传文件并且携带参数

这里整理一下 OkHttp 的 post 在上传文件的同时,也要携带请求参数的方法。
使用 OkHttp 版本如下:
compile 'com.squareup.okhttp3:okhttp:3.4.1'
代码如下:
protected void post_file(final String url, final Map<String, Object> map, File file) {
OkHttpClient client = new OkHttpClient();
// form 表单形式上传
MultipartBody.Builder requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM);
if(file != null){
// MediaType.parse() 里面是上传的文件类型。
RequestBody body = RequestBody.create(MediaType.parse("image/*"), file);
String filename = file.getName();
// 参数分别为, 请求key ,文件名称 , RequestBody
requestBody.addFormDataPart("headImage", file.getName(), body);
}
if (map != null) {
// map 里面是请求中所需要的 key 和 value
for (Map.Entry entry : map.entrySet()) {
requestBody.addFormDataPart(valueOf(entry.getKey()), valueOf(entry.getValue()));
}
}
Request request = new Request.Builder().url("请求地址").post(requestBody.build()).tag(context).build();
// readTimeout("请求超时时间" , 时间单位);
client.newBuilder().readTimeout(5000, TimeUnit.MILLISECONDS).build().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("lfq" ,"onFailure");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
String str = response.body().string();
Log.i("lfq", response.message() + " , body " + str);
} else {
Log.i("lfq" ,response.message() + " error : body " + response.body().string());
}
}
});
}
这里说明一点,就是 MultipartBody.Builder 的 addFormDataPart 方法,是对于之前的 addPart 方法做了一个封装,所以,不需要再去配置 Header 之类的。
如果只是单纯的 Post 携带参数,那么直接使用 FormBody ,代码如下:
FormBody.Builder formBody = new FormBody.Builder();
if (map != null) {
for (Map.Entry entry : map.entrySet()) {
formBody.add(String.valueOf(entry.getKey()),String.valueOf(entry.getValue()));
}
}
以上只是针对项目中遇到的问题进行整理,需要了解更多,请自行查阅大神们的解析。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# OkHttp
# Post上传文件
# Post上传文件传参
# Post
# Android retrofit上传文件实例(包含头像)
# android 上传文件到服务器代码实例
# Android实现上传文件功能的方法
# Android中实现OkHttp上传文件到服务器并带进度
# Android实现上传文件到服务器实例详解
# Android上传文件到服务端并显示进度条
# android 开发中使用okhttp上传文件到服务器
# Android上传文件到服务器的方法
# Android WebView 上传文件支持全解析
# Android程序开发通过HttpURLConnection上传文件到服务器
# Android使用Retrofit上传文件功能
# 上传文件
# 上传
# 也要
# 不需要
# 希望能
# 大神
# 分别为
# 再去
# 谢谢大家
# 表单
# 所需要
# 整理一下
# 请自行
# client
# form
# create
# OkHttpClient
# map
# gt
# file
相关文章:
如何通过二级域名建站提升品牌影响力?
大型企业网站制作流程,做网站需要注册公司吗?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
在线制作视频网站免费,都有哪些好的动漫网站?
如何快速上传建站程序避免常见错误?
建站主机选哪家性价比最高?
已有域名和空间如何快速搭建网站?
建站之星如何实现五合一智能建站与营销推广?
建站之星如何一键生成手机站?
常州自助建站工具推荐:低成本搭建与模板选择技巧
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何安全更换建站之星模板并保留数据?
建站之星logo尺寸如何设置最合适?
如何通过万网虚拟主机快速搭建网站?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
盐城做公司网站,江苏电子版退休证办理流程?
如何选择服务器才能高效搭建专属网站?
北京网站制作网页,网站升级改版需要多久?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
制作网站公司那家好,网络公司是做什么的?
,如何利用word制作宣传手册?
图册素材网站设计制作软件,图册的导出方式有几种?
网站制作话术技巧,网站推广做的好怎么话术?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
如何高效配置香港服务器实现快速建站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何在建站主机中优化服务器配置?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
建站ABC备案流程中有哪些关键注意事项?
个人摄影网站制作流程,摄影爱好者都去什么网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
建站主机SSH密钥生成步骤及常见问题解答?
网站制作公司排行榜,抖音怎样做个人官方网站
建站主机与服务器功能差异如何区分?
网站制作企业,网站的banner和导航栏是指什么?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
建站主机如何安装配置?新手必看操作指南
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何在腾讯云服务器快速搭建个人网站?
建站之星导航如何优化提升用户体验?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
建站之星后台管理系统如何操作?
nginx修改上传文件大小限制的方法
制作销售网站教学视频,销售网站有哪些?
建站之星代理平台如何选择最佳方案?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
*请认真填写需求信息,我们会在24小时内与您取得联系。