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布局中的代码
定义的接口
package com.example.day004.Utils;
public interface Getinterface {
public void success(T o);
}
实现解析的工具类
package com.example.day004.Utils;
import com.google.gson.Gson;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
public class OkgoUtils {
public void fromjson(String url, final Class c, final Getinterface getinterface){
OkGo.get(url).execute(new StringCallback() {
@Override
public void onSuccess(Response response) {
String body = response.body();
Gson gson = new Gson();
Object o = gson.fromJson(body, c);
getinterface.success((T)o);
}
});
}
}
activity中的代码
package com.example.day004;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.example.day004.Utils.Bean;
import com.example.day004.Utils.Getinterface;
import com.example.day004.Utils.Imageutils;
import com.example.day004.Utils.OkgoUtils;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.FileCallback;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Progress;
import com.lzy.okgo.model.Response;
import java.io.File;
public class MainActivity extends AppCompatActivity {
private Button image