//倒依赖
//OKHttp:网络请求框架
implementation “com.squareup.okhttp3:okhttp:3.12.0”
public class OKHttpUtil {
//3、提供一个本地OKHttpUtil引用
private static OKHttpUtil okHttpUtil;
private final OkHttpClient okHttpClient;
//单例模式
//1、私有化构造函数
//作用:不能被其他外部内容访问
private OKHttpUtil() {
//创建OKHttp对象
okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new RedirectInterceptor())
.addInterceptor(new LogInterceptor())
.build();
}
//2、提供公有方法供外部类访问
public static OKHttpUtil getInstance() {
//DCL模式的懒汉式
if (null == okHttpUtil) {
synchronized (OKHttpUtil.class) {
if (null == okHttpUtil) {
okHttpUtil = new OKHttpUtil();
}
}
}
return okHttpUtil;
}
public void post(RequestBody requestBody,String urlString,Callback callback) {
//①在这里首先需要请求体,但是需要具体类进行提供,所以把RequestBody作为参数进行传入
//②然后需要请求地址参数,也需要具体类进行提供,所以也把URL作为参数进行传入
Request request = new Request.Builder()
.method("POST", requestBody)
.url(urlString)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(callback);
}
public void get(String urlString,Callback callback){
//所需的参数是URL地址
Request request = new Request.Builder()
.url(urlString)
.build();
okHttpClient.newCall(request).enqueue(callback);
}
}
//2.OKgo
//导依赖
implementation ‘com.lzy.net:okgo:3.0.4’
//okgo
OkGo.get(Constant.SHOPPING_URL).execute(new StringCallback() {
@Override
public void onSuccess(Response response) {
}