一okhttp
1.简介:
官方简介:OkHttp是一个默认高效的HTTP客户端
1、HTTP2支持允许对同一主机的所有请求共享一个套接字。
2、透明GZIP缩小了下载大小。
3、连接池减少了请求延迟。
4、响应缓存完全避免了网络重复请求。
5、请求失败自动重试主机的其他IP,自动重定向:当网络出现问题时,OkHttp的不断重试,它会默默地从常见的连接问题中恢复,如果您的服务有多个IP地址,如果第一次连接失败,OkHttp将尝试备用地址,这对于IPv4+IPv6和冗余数据中心中托管的服务是必要的,OkHttp支持现代TLS功能(TLS1.3、ALPN、证书固定),它可以配置为回退以实现广泛的连接。
6、好用的API:使用OkHttp很容易,它的请求响应API设计有流畅的构建器和不变性,它支持同步阻塞调用和带有回调的异步调用。
2. Okhttp请求流程图:
![](/i/l/?n=22&i=blog/589122/202204/589122-20220423214941284-707310536.png)
3、其余次要类的简述
OkHttpClient:通信的客户端,用来统一管理发起请求与解析响应。
Call:Call是一个接口,它是HTTP请求的抽象描述,具体实现类是RealCall,它由CallFactory创建。
Request:请求,封装请求的具体信息,例如:url、header等。
RequestBody:请求体,用来提交流、表单等请求信息。
Response:HTTP请求的响应,获取响应信息,例如:响应header等。
ResponseBody:HTTP请求的响应体,被读取一次以后就会关闭,所以我们重复调用responseBody.string()获取请求结果是会报错的。
Interceptor:Interceptor是请求拦截器,负责拦截并处理请求,它将网络请求、缓存、透明压缩等功能都统一起来,每个功能都是一个Interceptor,所有的Interceptor最终连接成一个Interceptor.Chain,典型的责任链模式实现。
StreamAllocation:用来控制Connections与Streas的资源分配与释放。
RouteSelector:选择路线与自动重连。
RouteDatabase:记录连接失败的Route黑名单。
标签:HTTP,复习,响应,OkHttp,okhttp,Interceptor,请求 From: https://www.cnblogs.com/awkflf11/p/17118983.html