okgo框架实现与Glied实现
首先需要放入依赖(okgo)
implementation 'com.lzy.net:okgo:3.0.4'
一 get请求
OkGo.<String>get(prth).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
Log.i("123", "成功" + response.body());
}
@Override
public void onError(Response<String> response) {
super.onError(response);
Log.i("123", "失败" + response.body());
}
});
二 post请求
HashMap<String, String> hashMap = new HashMap();
hashMap.put("limit", "20");
hashMap.put("page", "1");
OkGo.<String>post(pass).params(hashMap).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
Log.i("123", "成功" + response.body());
}
@Override
public void onError(Response<String> response) {
super.onError(response);
Log.i("123", "失败" + response.body());
}
});
三 下载
OkGo.<File>get(paas).execute(new FileCallback("/sdcard/Music", "zhao.mp4") {
@Override
public void onSuccess(Response<File> response) {
Log.i("123", "成功" + response.body());
}
@Override
public void onError(Response<File> response) {
super.onError(response);
Log.i("123", "失败" + response.body());
}
//这里可以设置下载进度
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
float fraction = progress.fraction;
progressBar.setProgress((int) (fraction * 100));
}
});
四 下载照片(转换成bitmip)
OkGo.<Bitmap>get("").execute(new BitmapCallback() {
@Override
public void onSuccess(Response<Bitmap> response) {
image_layout.setImageBitmap(response.body());
}
});
五 封装一个解析类
package com.example.myday93_lianxi;
import com.google.gson.Gson;
import com.lzy.okgo.callback.AbsCallback;
import okhttp3.Response;
public abstract class Okjson<T> extends AbsCallback<T> {
private Class<T> bclass;
public Okjson(Class<T> bclass) {
this.bclass = bclass;
}
@Override
public T convertResponse(Response response) throws Throwable {
String string = response.body().string();
Gson gson = new Gson();
T t = gson.fromJson(string, bclass);
return t;
}
}
在主activity中调用
直接解析完毕
OkGo.<Jsonbean>get("").execute(new Okjson<Jsonbean>(Jsonbean.class) {
@Override
public void onSuccess(Response<Jsonbean> response) {
Jsonbean body = response.body();
List<Jsonbean.DataBean> data = body.getData();
}
});
Glied调用与显示
放入依赖 :
implementation 'com.github.bumptech.glide:glide:4.5.0'
正常调用:(网络获取图片并设置到控件)
RequestManager with = Glide.with(添加上下文);
RequestBuilder<Drawable> load = with.load(网址);
load.into(设置到的控件);
设置圆形(加apply设置圆形或者圆角)
RequestManager with = Glide.with(this);
RequestBuilder<Drawable> load = with.load().apply(new RequestOptions());
load.into();