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的学习的主要内容,如果未能解决你的问题,请参考以下文章