OkHttp的学习(二)

来源:互联网 发布:c语言 algin 编辑:程序博客网 时间:2024/05/18 01:41

一、OkhttpUtils

对okhttp的封装类,这个类对OkHttp网络操作进行了一些封装,Android Studio中本来是没有这个类的,需要自己在build.gradle里添加

compile 'com.zhy:okhttputils:2.0.0'
下面我们就一起来学习一下这个类,然后再看下其基本的用法。

 public static final long DEFAULT_MILLISECONDS = 10000;    private static OkHttpUtils mInstance;    private OkHttpClient mOkHttpClient;    private Handler mDelivery;

这个类里面首先定义了一个默认的时长,为10秒,应该是用作请求超时什么的。

然后定义了一个静态变量,也为这个类的唯一实例,这里他使用了单例模式,在私有的构造方法里,分别对这几个成员变量做了初始化操作,见下面的代码:

private OkHttpUtils()    {        mOkHttpClient = new OkHttpClient();        //cookie enabled        mOkHttpClient.setCookieHandler(new CookieManager(null, CookiePolicy.ACCEPT_ORIGINAL_SERVER));        mDelivery = new Handler(Looper.getMainLooper());        if (false)        {            mOkHttpClient.setHostnameVerifier(new HostnameVerifier()            {                @Override                public boolean verify(String hostname, SSLSession session)                {                    return true;                }            });        }    }
这个类里面的一些方法

    public Handler getDelivery()    {        return mDelivery;    }    public OkHttpClient getOkHttpClient()    {        return mOkHttpClient;    }    public static GetBuilder get()    {        return new GetBuilder();    }    public static PostStringBuilder postString()    {        return new PostStringBuilder();    }    public static PostFileBuilder postFile()    {        return new PostFileBuilder();    }    public static PostFormBuilder post()    {        return new PostFormBuilder();    }
这些也就不用多说什么,都是返回一些对象的方法。这些对象分别都是一些网络操作封装类的对象,通过名字我猜你已经知道它们的作用是什么了。

GetBuilder:用来构建get请求的,里面包括url和参数的拼接,tag,header等的设置
PostStringBuilder:也是用来构建请求的,但是与GetBuiler不一样,这个构建的是post请求
PostFileBuilder:里面有两个字段,一个是文件对象,一个是媒体类型。这个类主要用于上传文件
PostFormBuilder :里面的字段是List<FileInput> files=new ArrayList();一个类型为FileInputStream的链表,这个类我感觉是高效率地创建表单然后上传。 二、OkhttpUtils的使用






0 0
原创粉丝点击