OkGo框架
用来处理网络请求的框架 功能:上传,下载
OkGo主要功能
基本的get、post、put、delete、head、options、trace、patch八种请求
支持upString,upJson,upBytes,upFile等up类方法上传特定数据
支持一个key上传一个文件,也可以一个key上传多个文件,也可以多文件和多参数一起上传 大文件下载和下载进度回调 大文件上传和上传进度回调
支持cookie的自动管理,并可自定义cookie管理策略 支持缓存模式,不仅支持http缓存协议,也支持自定义缓存策略 支持重定向
支持自定义超时自动重连次数 支持链式调用 支持https访问,支持双向认证 支持根据tag取消请求,也可全部取消
支持自定义Callback,自动解析网络数据
首先添加依赖:
implementation ‘com.lzy.net:okgo:3.0.4’
案例效果展示
上传的文件展示
下载的文件展示
解析的字符串log输出展示
关于代码的一些问题
实现的功能:get方式下载文件,封装工具类下载json串并解析字符串,post上传MP4;
ps:其中加入了progress测试,还有glide的功能
思路:
1.首先需要封装一个工具类
(1)这个工具类需要定义一个结果接口传值
(2)这个工具类需要实现下载json串和解析的功能
(3)这个工具类非常灵活,调用时可以用任意json串
2.在xml中需要定义按钮实现效果
3.activity中需要实现具体代码
代码
xml布局中的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="下载文件"
/>
<Button
android:id="@+id/json"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="解析json"
/>
<Button
android:id="@+id/mp4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="上传mp4"
/>
<ProgressBar
android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.