OKHttp的封装类

使用单例模式中的 静态内部类 封装的一个OkHttp 工具类
首先要导入的依赖

implementation 'com.squareup.okhttp3:okhttp:3.12.0'/*这是使用okhttp 的依赖*/
public class OkUtils {
private OkHttpClient okHttpClient;

    public OkUtils() {
        okHttpClient = new OkHttpClient();
    }

    public static OkUtils getInstance(){
        return OkHolder.okUtils;
    }

    static class OkHolder{
        private static final OkUtils okUtils = new OkUtils();
    }

//     同步get
    public String getsync(String murl) throws IOException {
        Request request = new Request.Builder().url(murl).build();
        return okHttpClient.newCall(request).execute().body().string();
    }
//    同步post
    public String postsync(String murl,String key,String value) throws IOException {
        RequestBody body = new FormBody.Builder().add(key,value).build();
        Request request = new Request.Builder().url(murl).post(body).build();
        return okHttpClient.newCall(request).execute().body().string();
    }
//      异步get
    public void getAsync(String murl, Callback callback){
        Request request = new Request.Builder().url(murl).build();
        okHttpClient.newCall(request).enqueue(callback);
    }

//    异步 post
    public void postAsync(String murl,String key,String value,Callback callback){
        RequestBody body = new FormBody.Builder().add(key,value).build();
        Request request =new Request.Builder().url(murl).post(body).build();
        okHttpClient.newCall(request).enqueue(callback);
    }
    }

猜你喜欢

转载自blog.csdn.net/weixin_43564787/article/details/84954829
今日推荐