1,封裝工具類
需要導攔截器的依賴
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
package com.example.recycleviewdtm.utils;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class MyUtils {
static class getdata{
public static final MyUtils utils=new MyUtils();
}
public static MyUtils data(){
return getdata.utils;
}
public static void Asyncget(String mUrl, Callback callback){
OkHttpClient okHttpClient=new OkHttpClient();
Request request=new Request.Builder().url(mUrl).build();
Call call = okHttpClient.newCall(request);
call.enqueue(callback);
}
//日誌攔截器
public Myutils() {
OkHttpClient okHttpClient=new OkHttpClient.Builder()
.callTimeout(20,TimeUnit.SECONDS)
.connectTimeout(20,TimeUnit.SECONDS)
.readTimeout(20,TimeUnit.SECONDS)
.addInterceptor(new HttpLoggingInterceptor()).build();
}
}
2,okhttp的使用
MyUtils.Asyncget(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBack.error(call+"失敗");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = response.body().string();
}
});