开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载

OkHttpPlus介绍

项目地址:https://github.com/ZhaoKaiQiang/OkHttpPlus

主要功能:OkHttp封装,支持GET、POST、UI线程回调、JSON格式解析、链式调用、小文件上传下载及进度监听等功能

为什么要写这么一个库呢?

首先,是因为OkHttp在4.4之后已经作为底层的Http实现了,所以OkHttp这个库很强大,值得我们学习。

其次,在我看来,OkHttp使用起来不如Volley方便,OkHttp的回调都是在工作线程,所以如果在回调里面操作View的话,需要自己转换到UI线程,非常繁琐,所以需要封装。也有将OkHttp作为Volley底层Http实现的用法,发送请求、维护请求队列用的是Volley,实际的Http请求用的是OkHttp。

关于Volley和oOkHttp结合的Demo请戳煎蛋项目

如何使用

初始化

你可以在Application里面完成初始化,因为对OkHttp的封装主要使用的是代理设计模式,使用OkHttpProxy.getInstance()可以获取到单例客户端,你可以像没封装之前一样,设置任意的参数,比如下面就设置超时时间和忽略HTTPS认证。

public class OkApplication extends Application {
   

    @Override
    public void onCreate() {
        super.onCreate();

        OkHttpClient okHttpClient = OkHttpProxy.getInstance();
        okHttpClient.setConnectTimeout(10, TimeUnit.SECONDS);
        okHttpClient.setReadTimeout(15, TimeUnit.SECONDS);
        okHttpClient.setWriteTimeout(15, TimeUnit.SECONDS);

        //ignore HTTPS Authentication
        okHttpClient.setHostnameVerifier(new MyHostnameVerifier());
        try {
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, new TrustManager[]{
  new MyTrustManager()}, new SecureRandom());
            okHttpClient.setSslSocketFactory(sc.getSocketFactory());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        }
    }
}

Get方法

你大多数情况下是和OkHttpProxy这个代理类打交道,而且OkHttpPlus支持链式调用,内部采用Builder设计模式,所以你可以像下面这样使用

 OkHttpProxy.get()
                .url(URL_USER)
                .tag(this)
                .execute(new OkCallback<User>(new OkJsonParser<User>() {
                }) {
                    @Override
                    public void 
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值