3.2.网络请求组件开发
okhttp提供的api去发送最基本的请求
模块划分
应用模块
网络请求sdk
视频播放sdk
OkHttp3的基本使用
get/post请求发送及响应
存在的问题
OkhttpClient mOkHttpClient=new OkHttpClient(); //很麻烦,可省略
// 不想看到Request.Builder()
Request request=new Request.Builder() .url("https://www.imooc.com/") .build();
// newCall call.enqueue和看这烦
Call call=mOkHttpClient.newCall(request); //请求加入调度 call.enqueue
// 返回的对象还需要自己强转,不优雅
受不了以上问题,开始封装
期望达成的调用效果
同步效果
Link link = RestTemplate.postForObject(url, headers,boby,Link.class);
List list = RestTemplate.postForArray(url, headers,boby,Link.class);
异步效果
代码封装
代码封装的原因
代码冗余
变更
封装部分
request:为我们创建好请求对象(请求参数)
okhttp核心:发送get/post请求,请求参数设置,https支持
callback:处理回调函数、异常处理、转发消息到UI线程、将Json转化为实体对象
封装结构
cookie
exception
https
listener
request
response
//封装所有的请求参数到HashMap中
//为我们生成request对象
支持https加密请求
实现文件上传/下贼
传参
发送
解析
Last updated
Was this helpful?