封裝okhttp異步GET+日誌攔截器

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();
  
    }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章