OkHttp的学习

Posted liunx1109

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OkHttp的学习相关的知识,希望对你有一定的参考价值。

一、参数的讲解

  1. OkHttpClient : OkHttp的客户端,初始化OkHttp的一些重要配置

  2. Request : 请求数据封装

  3. Call : 可执行异步或者同步请求

  4. Interceptor : OkHttp 中的重要成分,拦截器,基于责任链设计模式

  5.RetryAndFollowUpInterceptor : 负责错误重试以及重定向

  6.BridgeInterceptor : 负责组装请求以及解析数据

  7.CacheInterceptor: 负责读取缓存和更新缓存

  8.ConnectInterceptor: 负责和服务器连接      Okio对接

  9.CallServerInterceptor: 负责发送请求以及接受数据  核心功能

  二、OkHttp大致流程 :  首先创建一个OkHttpClient的对象,然后创建一个线程池,再次创建一个CallBack,然后把CallBack封装为一个Runnable,

    当执行 execute方法去执行run方法,run方法是自己重新写的,里面主要是运行拦截器的处理。

  三、json的基础学习

    ? :  代表参数和hostName地址之间的分隔符

    

  四、Get请求和Post请求的区别

    1.Get传递参数时候,会有带有这样敏感信息参数传递,他在处理过程长度也是收到限制,实例说明

     HttpUrl.Builder builder = HttpUrl.parse("http://v.juhe.cn.jock/content/list.php").newBuilder();
    builder.addQueryParameter("sort", "desc");
    builder.addQueryParameter("page", "1");
    builder.addQueryParameter("pagesize", "2");
    builder.addQueryParameter("time", "" + System.currentTimeMillis()/1000);
    builder.addQueryParameter("key", "bbc57dd5e4f05991af09eafd2e667e0");
    Request request = new Request.Builder().url(builder.build()).get().build();

   2.Post的主要参数不会暴露在外面,信息比较安全,适合去推送数据

    OkHttpClient client = new OkHttpClient();
    FormBody.Builder builder = new FormBody.Builder();
    builder.add("key", "0f08cd674792667feb5ce236ea028747");
    Request request = new Request.Builder().url("http://apis.juhe.cn/lottery/types").post(builder.build()).build();
    Call call = client.newCall(request);
    call.enqueue(new Callback()

   3. Post常见的数据提交类型(需要补充)

    1.

  五、同步和异步的区别

    异步请求放到线程池里面,而同步请求没有放到线程池里面

 

以上是关于OkHttp的学习的主要内容,如果未能解决你的问题,请参考以下文章

安卓网络请求之——OkHttp学习

Okhttp3 设计思想学习

Okhttp3 设计思想学习

OkHttp学习 - POM 文件

OkHttp学习 - POM 文件

安卓学习----使用okHttp(POST方式)---登录