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
相关文章:
山东网站制作公司有哪些,山东大源集团官网?
常州企业建站如何选择最佳模板?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
再谈Python中的字符串与字符编码(推荐)
西安大型网站制作公司,西安招聘网站最好的是哪个?
C++中引用和指针有什么区别?(代码说明)
岳西云建站教程与模板下载_一站式快速建站系统操作指南
代购小票制作网站有哪些,购物小票的简要说明?
如何通过虚拟机搭建网站?详细步骤解析
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何在宝塔面板中创建新站点?
高端企业智能建站程序:SEO优化与响应式模板定制开发
建站之星后台密码遗忘或太弱?如何重置与强化?
如何选择靠谱的建站公司加盟品牌?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何零基础在云服务器搭建WordPress站点?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
个人摄影网站制作流程,摄影爱好者都去什么网站?
网站app免费制作软件,能免费看各大网站视频的手机app?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
IOS倒计时设置UIButton标题title的抖动问题
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
,网页ppt怎么弄成自己的ppt?
大连网站制作公司哪家好一点,大连买房网站哪个好?
建站之星微信建站一键生成小程序+多端营销系统
香港服务器WordPress建站指南:SEO优化与高效部署策略
建站主机服务器选型指南与性能优化方案解析
建站之星免费版是否永久可用?
网页设计与网站制作内容,怎样注册网站?
建站主机选虚拟主机还是云服务器更好?
c# await 一个已经完成的Task会发生什么
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何破解联通资金短缺导致的基站建设难题?
,交易猫的商品怎么发布到网站上去?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何确认建站备案号应放置的具体位置?
网站制作免费,什么网站能看正片电影?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
建站之星CMS五站合一模板配置与SEO优化指南
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
如何通过网站建站时间优化SEO与用户体验?
如何高效完成自助建站业务培训?
如何高效配置IIS服务器搭建网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
图册素材网站设计制作软件,图册的导出方式有几种?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
制作网站的软件免费下载,免费制作app哪个平台好?
建站主机选择指南:服务器配置与SEO优化实战技巧
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
*请认真填写需求信息,我们会在24小时内与您取得联系。