Android网络开源库-Retrofit(二) 文件上传、下载及进度监听

2023-11-13

1.写在前面的话

首先说明,我还没太搞懂retrofit,目前,这篇博客只能给出这几个内容。

  • 文件上传
  • 文件下载
  • 文件下载的进度监听

还有这两点没弄好,

  • 多文件一次上传 (批量上传)
  • 文件上传进度监听

当前使用版本

compile 'com.squareup.retrofit2:retrofit:2.0.2'

2. 文件上传

2.1 api 接口编写

public interface uploadfileApi {
   
    @Multipart
    @POST("/fileabout.php")
    Call<String> upload(@Part("fileName") String des,
                        @Part("file\"; filename=\"1.txt") RequestBody file);
}
  • @Part(“fileDes”) String des 可以加一些描述信息(可以不加)
  • @Part(“file\”; filename=\”1.txt”) 格式不变,只需将1.text 对应的替换为你想在服务器生成的文件名称
  • 如果想传多个文件,多次请求,当然,也可以像表单一样(还没弄好)

当然,上面这种办法的灵活性差了点,我们可以选择下面这种写法

public interface uploadfileApi {
   
    @Multipart
    @POST("/fileabout.php")
    Call<String> upload_2(@PartMap Map<String,RequestBody> params);
}

2.2 上传文件

第一种api接口对应的代码

Retrofit retrofit= new Retrofit.Builder()
                        .addConverterFactory(GsonConverterFactory.create())
                        .baseUrl("http://192.168.56.1")
                        .build();
uploadfileApi service =retrofit.create(uploadfileApi.class);
File file = new File(Environment.getExternalStorageDirectory() + "/" + "1.txt");
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"),file);
Call<String> model = service
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android网络开源库-Retrofit(二) 文件上传、下载及进度监听 的相关文章

  • Eclipse Android 项目总是在调试中启动

    我觉得问这个问题很愚蠢 遇到这个问题更愚蠢 我有一个 Android 项目 到目前为止一直运行良好 但几天前 在我没有做任何我所知道的特别事情的情况下 无论我尝试什么 我的项目总是在调试中启动自己 单击调试或运行会给我相同的结果 我尝试查看
  • 包管理器已去世

    我收到一位安装了很多应用程序的用户发来的邮件 称当我的应用程序使用以下代码收集活动信息时 他遇到了问题 getPackageManager queryIntentActivities mAinIntent 0 完整来源在这里 https g
  • 使用busybox在后台安装apk

    我可以在 root 设备上使用 busybox 在后台安装 apk 吗 我看到类似的东西 但它不起作用 process install CommandCapture command new CommandCapture 0 chmod 77
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • 在新的菜单提供程序 API 弃用“setHasOptionsMenu”后,隐藏 Fragment 中的菜单项并在导航返回上再次显示它们

    大约一个月前 Android 团队弃用了onCreateOptionsMenu and onOptionsItemSelected 也setHasOptionsItemMenu 不幸的是 这破坏了我所有的代码 我的应用程序有很多片段 当用户
  • 如何在 Jetpack compose 中制作 FlipCard 动画

    我有一个现有的应用程序 我在其中使用 XML 中的 Objectanimator 实现了 FlipCard 动画 如下所示 如果我点击一张卡片 它会水平翻转 但现在我想将其迁移到 jetpack compose 那么jetpack comp
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 如何在Android中访问现有的sqlite数据库?

    到目前为止 我们已经在 Android 中开发了在运行时创建数据库的应用程序 我们想知道如何在 Android 应用程序中访问预构建或现有的数据库 sqlite 文件 请提供详细信息 查看文档android database sqlite
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • Android ViewModel LiveData 在按钮单击时更新视图

    我正在关注这个tutorial https developer android com topic libraries architecture guide html common problems faced by app develop
  • ProgressBar.setInminateDrawable() 不起作用

    当我尝试更改我的 indeteminateDrawable 进度条就消失了 我必须更改我的进度条的可绘制对象 我尝试了invalidate requestLayout等 我不知道如何解决它 谢谢 这里的代码 progressBar setI
  • Android volley使用RequestFuture.get()时出现超时异常

    在我的片段中 我尝试使用 TMDB 的开放电影数据库来获取有关 正在播放 电影的详细信息 如果我使用 RequestFuture get time TimeUnit 方法来执行此齐射请求 我总是会收到超时错误 如果我在 Safari 中手动
  • 运行 Android 应用程序时出现错误

    我已经使用 Eclipse 创建了一个 Android 应用程序 但应用程序未在 AVD 上运行 它显示 不幸的是已停止工作 日志猫消息如下 07 29 04 59 50 789 W dalvikvm 784 threadid 1 thre
  • 推特更新状态

    我正在通过 twitter4j 将 Twitter 集成到 Android 我可以成功阅读我发布的推文 现在我试图用它发布推文 但我不能 我收到如下奇怪的警告 02 01 16 28 43 298 WARN System err 729 4
  • 通知操作而不启动新活动?

    我计划提供一个包含两个操作的提醒通知 一个用于批准登录请求 一个用于拒绝登录请求 通过单击这些操作中的任何一个 我希望向我的服务器发出 HTTP 请求 最重要的是 我不想启动新的 Activity 或根本不想将用户重定向到我的应用程序 Co
  • 可用屏幕的尺寸

    我使用的是 Nexus 7 1280x800 android 4 2 2 API 17 我想获取屏幕的大小 将其划分为相同高度和宽度的正方形部分 我正在使用 FrameLayout 我的方块是 ImageView 的子类 我这样做 cont
  • 按“重置应用程序首选项”后,我的应用程序的所有权限都被撤销

    我开发了一个应用程序 支持Android 6 0 当我在 设置 gt 应用程序 gt 重置应用程序首选项 中重置应用程序首选项时 我的应用程序的所有权限都将被撤销 并且应用程序不会重新启动 撤销权限后未能重新启动应用程序可能会导致许多意外崩
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro
  • Android 版本低于 Lollipop 时出现 java.lang.NoClassDefFoundError

    我有一台运行 Android 21 的 Nexus 5 设备 我正在测试我的项目 没有任何问题 但是 如果我使用 Google API 19 在模拟器上进行测试 则会显示错误java lang NoClassDefFoundError 如果

随机推荐

  • Java并发编程-第二章

    以下内容来自 Java并发编程 书籍第二章 补充 1 volatile的有序性 volatile通过内存屏障实现禁止指令重排序保证有序性 硬件层面的内存屏障分为Load Barrier 和 Store Barrier即读屏障和写屏障 2 同
  • 企业号回调模式php,.net开发微信企业号之回调模式触发功能

    1 首先服务器跟域名指向的80端口必须不能缺少 2 然后在企业号后台配置里选择回调模式 选择回调模式时候需要配置域名 这时候就跟我们的代码相关了 这一次的配置 对于服务器来说 属于get的请求 我们要在服务器上面写上get请求的方法 以及返
  • Python3下载安装教程并安装numpy模块

    使用到的资源 numpy python3 5 for win7 64bit python3安装教程 第一步 在路径下下载python3的可执行文件 下载来了安装第一步就是双击下载下的安装文件安装python3 5 2版本的python 记得
  • csp-Z字形扫描

    201412 2 试题名称 Z字形扫描 时间限制 2 0s 内存限制 256 0MB 问题描述
  • numpy pad函数

    在卷积神经网络中一个重要的操作就是padding 翻译为填充 就是把一张图片的作为填上一些像素点 以免使得在卷积过程中 图像边缘的点的信息卷积次数过少 而使信息丢失 在numpy函数中已经把padding封装好了 此处重点讨论这函数的具体用
  • 在python中WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.

    这种情况下就是你的pip版本有问题 需要进行升级 这个问题的解决是参考 WARNING You are using pip version 20 2 4 however version 20 3 1 is available 天天向上200
  • Android开发使用OpenCv中JavaCameraView预览图左旋90度问题

    转自 https blog csdn net yd yandong article details 52698696 本文参考地址 http stackoverflow com questions 14816166 rotate camer
  • 基于Colaboratory平台使用VGGNet网络进行图片分类

    基于VGGNet网络进行图片分类 由于样本是在有点多 加上有点其他的事情 样本制作工作 还差一点 有因为一些其他的原因 碰巧需要用Colaboratory来跑一下数据 在网上参考了一下代码之后 用Colaboratory跑了一遍图片分类的流
  • 【大数据】通过 docker-compose 快速部署 MinIO 保姆级教程

    文章目录 一 概述 二 MinIO 与 Ceph 对比 1 架构设计对比 2 数据一致性对比 3 部署和管理对比 4 生态系统和兼容性对比 三 前期准备 1 部署 docker 2 部署 docker compose 四 创建网络 五 Mi
  • 【yolo5】目标检测数据集制作

    目录 1 先验知识 2 VOC和COCO数据集 2 1 VOC形式及其数据结构XML特点 好像可以使用py库中工具直接进行清洗 2 1 1 VOC数据集的组织结构如下所示 2 1 2 XML的操作 2 1 3 XML实例 country d
  • 多目录时Makefile 的编写方法

    多级目录结构的Makefile 本文主要以例程的方式展示了二级目录结构下的Makefile的写法 详细注释 对于更加纷杂的多级目录 大家可在此基础上进行修改 定义变量 ARCH默认为x86 使用gcc编译器 否则使用arm编译器 ARCH
  • 学机器人就是编程吗

    学机器人就是编程吗 小孩的学习从古至今都是家长们十分关心和重视的一件事情 很多家长在培养孩子的学习方面也是非常的用心的 会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于学机器人就是
  • Python 3 – 文件 readline() 方法

    Python 3 文件 readline 方法 极客笔记 打开文件 file open example txt r 读取文件中的一行数据 line file readline while line 移除行尾的换行符 print line s
  • Linux——lseek函数、stat函数、lstat和stat、linux和Unix隐式回收、目录操作函数

    一 lseek函数 获取文件大小示例 扩展文件大小示例 但是如果要真改变文件大小必须有I O读写操作 无I O示例的扩展 结果 原来大小是777 扩展111 lseek是888 但是文件大小还是777 加上I O操作 即加个write 最重
  • 看看Ubuntu22.10的几个新功能值不值得更新和升级

    目录 前言 桌面可用性和性能提升 优化的开发者工作流 支持微控制器和嵌入式显示器 升级企业管理工具 前言 2022年10月20日 Ubuntu开发商Canonical宣布正式推出Ubuntu 22 10 代号 Kinetic Kudu Ca
  • html弹窗代码只弹窗一次,js 弹出框只弹一次(二次修改后)

    弹出框只弹一次 edit www jquerycn cn var returnvalue function openpopup colorbox inline true href getGiftForm innerWidth 650px i
  • raid读写速度对比_深入分析各种raid级别相对单盘速度变化

    入分析各种raid级别相对单盘速度变化 RAID0用分片存储方式把数据分布在两个盘或更多盘上 读写持续传输速率会增加一倍 随机读写速度按理论是有可能增加的 这取决于数据分片大小和读写的大小 不过总的来说很值得怀疑 硬件RAID1的随机和持续
  • 3D茶壶绘制_2021秋季《计算机图形学》_基于《计算机图形学(第四版)》D.H.&M.P.B.&W.R.C.

    一 实验目的 绘制3D茶壶 形状为传统的紫砂茶壶 用光照模型着色 用键盘实现旋转 二 实验环境 Visual Studio 2019 Windows 10 三 算法分析与设计 四 实验结果 旋转 五 附录 include
  • pycharm之pip

    不知道朋友们用过maven没有 使用JAVA编程的人应该有人用过这个有趣的东西 JAVA导包是容易的 然而 懒是没有极限了 所以maven出来了 一个丰满的开发包仓库 不需要你再去哪儿找找找 但是这又算得了什么 我们伟大的Python怎么可
  • Android网络开源库-Retrofit(二) 文件上传、下载及进度监听

    1 写在前面的话 首先说明 我还没太搞懂retrofit 目前 这篇博客只能给出这几个内容 文件上传 文件下载 文件下载的进度监听 还有这两点没弄好 多文件一次上传 批量上传 文件上传进度监听 当前使用版本 compile com squa