Android Okhttp简单工具类的封装

目的:

简化okhttp的调用,简化代码。

工具类OkHttpUtil完整代码

注解已经详细解释,就不再进行说明。

/*
网络访问框架一般都需要单例模式(singleton),首先我们也进行单利模式。
1 首先私有化构造器,让别人不能new出其它实例。
2 声明该类的一个静态成员变量实例,本篇为instance
3 声明一个公有的方法getInstance提供给调用者本类实例。
 */
public class OkHttpUtil {
    // 必须要用的Okhttpclient实例,在构造器中实例化保证单一实例
    private static OkHttpClient okHttpClient;
    //防止多个线程同时访问
    //网络访问要求singleton
    private volatile static OkHttpUtil instance;
    //把构造器定义为私有的,只有OkHttpUtil类内可以调用构造器
    private OkHttpUtil(){
        okHttpClient = new OkHttpClient();
        //请求超时设置
        okHttpClient.newBuilder()
                    .connectTimeout(10, TimeUnit.SECONDS)
                    .readTimeout(10, TimeUnit.SECONDS)
                    .writeTimeout(10, TimeUnit.SECONDS)
                    .build();
    }
    /**
     * 懒汉式双重检查加锁单例模式
     */
    public static OkHttpUtil getInstance(){
        if(instance == null){
            synchronized (OkHttpUtil.class){
                if(instance == null) {
                    instance = new OkHttpUtil();
                }
            }
        }
        return instance;
    }
    /**
     * get异步请求不传参数
     * 通过response.body().string()获取返回的字符串
     * 异步返回值不能更新UI,要开启新线程
     */
    public void Get(String url, Callback callback){
        final Request request = new Request.Builder()
                .url(url)
                .build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(callback);
    }

}

工具类使用示例

OkHttpUtil.getInstance().Get(url, new okhttp3.Callback() {
       @Override
       public void onFailure(@NotNull okhttp3.Call call, @NotNull IOException e) {
           Log.e("TAG", "get回调失败:");
           //get回调失败处理事件
       }

       @Override
       public void onResponse(@NotNull okhttp3.Call call, @NotNull okhttp3.Response response) throws IOException {
           String body =response.body().string();
          //get回调成功处理事件
       }
   });

参考文章:
link
link

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值