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怎么用  音响网站制作视频教程,隆霸音响官方网站?