okgo概念性的东西我就不赘述了,百度一大堆,直接上具体的使用过程。

首先引入依赖:

implementation 'com.lzy.net:okgo:+'

我不知道这个版本号,所以直接用+来获取最新版本了。

引入依赖后需要在Application中初始化:

OkGo.getInstance().init(this);

摒弃所有花里胡哨的操作,要在application的oncreate()方法中初始化okgo就可以了。

因为上一篇已经开启了本地服务器了,所以这里就直接使用本地服务器的地址了。使用NanoHttpd在Android项目中搭建服务器,需要在项目中搭建服务器的可以去了解一下哈,虽然写得有点水。

上传功能:

  String serverIP = getIpAddress();//获取本机ip地址
String strDBPath = MyApplication.GetApp().getExternalFilesDir(null) + "/TIS-Smarthome/" + choose + "/" + (choose + ".db3");//数据库地址final String strDBPath2 = MyApplication.GetApp().getExternalFilesDir(null) + "/TIS-Smarthome/" + "upload/";//文件上传的路径String urlNano = "http://" + serverIP + ":8080";    //8080nanohttpd的端口号File file = new File(strDBPath);//实例化数据库文件List<File> fileList = new ArrayList<File>();//添加到arraylist里面fileList.add(file);//把文件添加到Filelist中//        }
//            File fileTest = new File("/sdcard/xda.txt");//post上传文件OkGo.<File>post(/*url*/urlNano)
//                    .tag(DatabaseSelectUpload.class)
//                    .headers("header1", "headerValue1")
//                    .params("db3",file)
//                    .isMultipart(true)
//                    .params("securityCode",pblvariables.security_code)/*验证码*/
//                    .params("Remark",choose)/*数据库名称*/
//                    .upFile(file/*fileTest*/)       /*使用up开头的方法 所有的params设置的参数将丢失 所以两种方法不能混用 */.addFileParams("fileOfdatabase",fileList).execute(new FileCallback(strDBPath2,choose+".db3") {//指定上传的路径 上传的文件名@Overridepublic void onSuccess(Response<File> response) {//UI线程 ,请求成功后回调handleResponse(response);// 该方法能够显示成功时的请求状态,请求头,响应数据以及响应头信息File result = response.body(); // 获取数据Log.i("randomcode","上传成功1 " + result);Toast.makeText(DatabaseSelectUpload.this,"Success!",Toast.LENGTH_SHORT).show();}@Overridepublic void onError(Response<File> response) {super.onError(response);//UI线程 ,请求失败后回调Log.i("randomcode","上传失败1 " + response.body());Toast.makeText(DatabaseSelectUpload.this,"Fail!",Toast.LENGTH_SHORT).show();}@Overridepublic void onFinish() {super.onFinish();//UI线程 ,请求结束后回调,无论网络请求还是失败都会调用finish();//结束当前页面}});

我上面传入的serverip地址是设备的ip,也就是说访问的是局域网内的服务器。获取方法百度一堆,懒的找的直接复制下面这个方法:

 /*** @Title: getIpAddress** @Description: 获取设备ip地址** @return String*/public static String getIpAddress() {try {for (Enumeration<NetworkInterface> enNetI = NetworkInterface.getNetworkInterfaces(); enNetI.hasMoreElements();) {NetworkInterface netI = enNetI.nextElement();for (Enumeration<InetAddress> enumIpAddr = netI.getInetAddresses(); enumIpAddr.hasMoreElements();) {InetAddress inetAddress = enumIpAddr.nextElement();if (inetAddress instanceof Inet4Address &&!inetAddress.isLoopbackAddress()) {return inetAddress.getHostAddress();}}}} catch (SocketException e) {e.printStackTrace();}return "";}

下载功能:

private void downLoadDatabase() {final String choose = DatabaseSelectUpload.name_.get(0);//这里给个写死的名称 真实的自己获取或者设置String serverIP = getIpAddress();String url = "http://" + serverIP + ":8080";String strDBPath3 = MyApplication.GetApp().getExternalFilesDir(null) + "/TIS- Smarthome/"+"download";//下载路径OkGo.<File>get(url)/*.tag(this).headers("header1", "headerValue1").params("db3", String.valueOf(new File(strDBPath))).params("securityCode",pblvariables.security_code)*//*验证码*//*.params("Remark",choose)*//*数据库名称*/.execute(new FileCallback(strDBPath3,choose/*+"_1"*/+".db3") {   //指定下载的路径  下载文件名@Overridepublic void onSuccess(Response<File> response) {Toast.makeText(TransferActivity.this,"dowmload database success",Toast.LENGTH_SHORT).show();Log.i("randomcode","下载成功1 " + response.body());}@Overridepublic void onError(Response<File> response) {super.onError(response);Toast.makeText(TransferActivity.this,"dowmload database fail",Toast.LENGTH_SHORT).show();Log.i("randomcode","下载失败1 " + response.body());}});
}

这样就完事了,url就是你的服务器地址。可指定上传下载的路径和文件名称。运行程序,成功的话会在对应目录下找到上传下载的文件。

简单使用Okgo上传下载文件相关推荐

  1. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例

    本文实例讲述了python实现的简单FTP上传下载文件的方法.分享给大家供大家参考.具体如下: python本身自带一个FTP模块,可以实现上传下载的函数功能. #!/usr/bin/env pyth ...

  2. 在Windows上使用终端模拟程序连接操作Linux以及上传下载文件

    在Windows上使用终端模拟程序连接操作Linux以及上传下载文件 [很简单,就是一个工具的使用而已,放这里是做个笔记.] 刚买的云主机,或者是虚拟机里安装的Linux系统,可能会涉及到在windo ...

  3. JavaWeb:上传下载文件

    1. 文件上传概述 1.1 文件上传的作用 例如网络硬盘!就是用来上传下载文件的. 在智联招聘上填写一个完整的简历还需要上传照片呢. 1.2 文件上传对页面的要求 上传文件的要求比较多,需要记一下: ...

  4. java 上传文件及预览_SpringBoot上传下载文件及在线预览

    SpringBoot上传下载文件及在线预览 今天大概就说说如何使用SpringBoot进行上传和下载以及在线预览文件 本篇主要介绍上传下载的功能,对于界面就简单一点,大致如下: 一.老规矩还是先看看小 ...

  5. linux ftp 登录慢,linux中vsftpd登录,上传下载文件慢解决办法linux操作系统 -电脑资料...

    vsftpd登录慢主要是nameserver #定义DNS服务器的IP地址没有设置了,这样我们只要设置或更新一下nameserver即可解决了, 在使用vsftpd的过程中,一直以来都有一个问题就是在 ...

  6. go ssh 执行多个命令_Gox语言中通过SSH远程执行命令及上传下载文件-GX10

    Gox语言作为一个"粘合剂"语言,当然需要有便捷的网络编程能力和远程服务器操作的能力,没有让人失望的是,这确实也正是它所擅长的. 再次说明,Gox语言的安装很简单,只需要去官网下载 ...

  7. springboot上传下载文件(4)--上传下载工具类(已封装)

    因为在做毕设,发现之前的搭建ftp文件服务器,通过ftp协议无法操作虚拟机临时文件,又因为ftp文件服务器搭建的比较麻烦:而 hadoop的HDFS虽然可以实现,但我这里用不到那么复杂的:所以我封装了 ...

  8. Linux| 向linux服务器上传下载文件方式收集(scp)

    scp [优点]简单方便,安全可靠:支持限速参数 [缺点]不支持排除目录 [用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式, ...

  9. secure CRT上传下载文件

    SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能.比ftp命令方便多了,而且服务器不用再开FTP服务了.rz,sz是便是Linux/Unix同Windows进行ZModem文件 ...

最新文章

  1. MOS管好坏的判别方法
  2. MIT 6.828 JOS学习笔记12 Exercise 1.9
  3. 当你在应用机器学习时你应该想什么
  4. 现在就是.Net最好的时代!我赞成,谁反对?
  5. leetcode 383. 赎金信 思考分析
  6. 【信号与系统|吴大正】2:连续系统的时域分析
  7. 0matlab计算锚泊系统,一种基于蒙特卡洛仿真的计算锚地容量的方法与流程
  8. 请求头显示Provisional headers are shown问题
  9. Ps 初学者教程「68」如何创建海报?
  10. 用python写脚本控制电脑息屏唤醒_Python制作小脚本,一键可以让你同事的电脑在你指定时间关机...
  11. 计算机桌面移动如何解决,【电脑小知识】桌面布局被锁定,图标不能随意移动了怎么办?...
  12. PAT甲级 1032 Sharing
  13. 通过Git Hook关联Tapd和Commit
  14. 亲生骨肉 窥视父母遗产 为了继承遗产竟用这种方式替代...
  15. 进制之间快速转换技巧
  16. 程序员面试100题之六 最长公共子序列
  17. golang zip压缩/解压缩用法
  18. 深入讨论DECLARE_HANDLE(HINSTANCE)
  19. YOLOv6又快又准的目标检测框架 已开源
  20. 华为Push用户增长服务:精准触达,加速增长

热门文章

  1. java 连接远程桌面_Java实现远程桌面(参赛作品)
  2. 图解java链表基本操作篇一(头插法和尾插法)
  3. 【关于浏览器插件的安装和使用的教程】
  4. Eclipse安装、激活、配置最新版JRebel
  5. 最长公共子串与最长公共子序列
  6. 在simulink下编程stm32,为什么我的stm32用串口打印数据,总是00或者ff
  7. Creo 二次开发-尺寸位置排序算法
  8. Java 实现分布式定时任务
  9. 无需安装Python,就可以在.NET里调用Python库
  10. 通达信dll接口怎么开发?