- OKhttp
- 发展背景,优缺点介绍
OKHttp是一个高效的HTTP客户端
1.同时支持HTTP1.1与支持HTTP2.0
2.同时支持同步与异步请求;
3.同时具备HTTP与WebSocket功能;
4.拥有自动维护的socket连接池,减少握手次数;
5.拥有队列线程池,轻松开发;
6.拥有Interceptors(拦截器),轻松处理请求响应额外需求(例如:请求失败重试,响应内容重定向等等);
OkHttp功能:
- GET
- POST
- 添加拦截器
- GSON解析
- 文件上传
- 全局添加Header
- 缓存文件路径以及缓存容量大小
- 域名和证书的校验
- OKHTTP DNS
- HiOKHttp网络请求框架封装
- 网络抓包
- 开始使用
在AndroidManifeest.xml添加网络访问权限
<uses-permission android:name="android.permission.INTERNET" />
添加依赖
implementation("com.squareup.okhttp3:okhttp:4.9.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.9.0")
同步请求不能在Android的主线程中执行,否则会报错NetworkMainThreadException
注意:无论是同步还是异步请求,接收到Response对象时均在子线程中,需要切换到主线程才能操作UI控件
- 拦截器Interceptor
拦截器是OkHttp当中比较强大的机制,可以监视,重写和重试调用请求.Logging Interceptor是一个比较简单的Interceptor实现,对请求的发送和响应进行了一些信息输出,简单实现.
Kotlin中的在类中的init方法会在加载的时候运行,有一些设定会在这里执行
-使用Gson来解析网络请求响应
Gson是Google开源的一个JSON库.被广泛应用在Android中
有个JSON To Kotlin Class的插件可以快速把json字符串生成模型类
在类中右键 -〉 Generate-〉 Kotlin data classes from JSON
- Retrofit
- RESTFUL网络请求框架发展背景,优缺点介绍
Retrofit是一个基于OkHttp的RESTful网络请求框架,功能强大,简洁易用及高可拓展性.基于注解开发.就是一个OKHttp的一个封装.架构于OkHttp之上的高级REST抽象.
同样出自Square公司,做了更多的拓展.
使用示例:
- 注解类型介绍
- 用于标注网络请求方式的注解
- 标记网络请求参数的注解
- 用于标记网络请求和响应格式的注解
- Retrofit实例创建
onFailure 和 onResponse的回调都是在主线程的