Android使用 Retrofit 2.X 上传多文件和多表单示例
发布时间 - 2026-01-11 03:01:20 点击率:次retrofit post请求上传表单和文件最重要的就是就是去构建RequestBody,今天为大家带来一种超级简单的上传方式

Body方式:
1、Retrofit接口RetrofitInterface
@POST(URLConstant.URL_PATH) Flowable<UploadImgBean> upload(@Body RequestBody Body);
2、Retrofit的配置
private static RetrofitInterface getRetrofitInterface(String baseUrl) {
if (retrofitInterface == null) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
// .addConverterFactory(ScalarsConverterFactory.create()) //string
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
retrofitInterface = retrofit.create(RetrofitInterface.class);
}
return retrofitInterface;
}
3、构建body
public static Flowable<UploadImgBean> upload(List<File> fileList) {
//构建body
//addFormDataPart()第一个参数为表单名字,这是和后台约定好的
MultipartBody.Builder builder = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("username", "name")
.addFormDataPart("phone", "phone")
//注意,file是后台约定的参数,如果是多图,file[],如果是单张图片,file就行
for (File file : fileList) {
//这里上传的是多图
builder.addFormDataPart("file[]", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
}
RequestBody requestBody = builder.build();
return getRetrofitInterface(URLConstant.URL_BASE).upload(requestBody);
}
4、开始执行上传
HttpUtils.upload(mUploadFileList)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DisposableSubscriber<UploadImgBean>() {
@Override
public void onNext(UploadImgBean uploadImgBean) {
Log.i(TAG, "onNext: " );
}
}
@Override
public void onError(Throwable throwable) {
Log.i(TAG, "onError: --->" + throwable.getMessage());
}
@Override
public void onComplete() {
Log.i(TAG, "onComplete: ");
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# retrofit2.0多文件上传
# retrofit
# 多文件上传
# android
# retrofit文件
# 基于标准http实现Android多文件上传
# Android中Okhttp3实现上传多张图片同时传递参数
# Android Retrofit实现多图片/文件、图文上传功能
# Android 使用 okhttp3和retrofit2 进行单文件和
# 上传
# 多图
# 表单
# 的是
# 这是
# 第一个
# 最重要
# 就行
# 大家多多
# retrofitInterface
# null
# Builder
# baseUrl
# String
# getRetrofitInterface
# RxJava2CallAdapterFactory
# addCallAdapterFactory
# return
# build
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript常见的五种数组去重的方式
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
java ZXing生成二维码及条码实例分享
如何用免费手机建站系统零基础打造专业网站?
Python并发异常传播_错误处理解析【教程】
Laravel如何为API生成Swagger或OpenAPI文档
详解阿里云nginx服务器多站点的配置
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
IOS倒计时设置UIButton标题title的抖动问题
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何快速启动建站代理加盟业务?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
如何快速查询域名建站关键信息?
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
韩国服务器如何优化跨境访问实现高效连接?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
网站建设保证美观性,需要考虑的几点问题!
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel如何配置和使用缓存?(Redis代码示例)
使用spring连接及操作mongodb3.0实例
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
怎么用AI帮你设计一套个性化的手机App图标?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
SQL查询语句优化的实用方法总结
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
高性能网站服务器部署指南:稳定运行与安全配置优化方案
浅述节点的创建及常见功能的实现
如何彻底删除建站之星生成的Banner?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Linux系统命令中screen命令详解
网易LOFTER官网链接 老福特网页版登录地址
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何安全更换建站之星模板并保留数据?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何在新浪SAE免费搭建个人博客?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Python进程池调度策略_任务分发说明【指导】
Android自定义listview布局实现上拉加载下拉刷新功能
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
音响网站制作视频教程,隆霸音响官方网站?
上一篇:Linux 版 WhatsApp
下一篇:dm是什么长度单位【详解】
上一篇:Linux 版 WhatsApp
下一篇:dm是什么长度单位【详解】

