概述
OkHttp是Android和Java应用程序用来处理的HTTP和HTTP/2协议的客户端。HTTP作为当前网络应用中最通用的数据&媒体交换方式,高效的HTTP能够使任务加载更快并节省带宽是各类HTTP客户端需要处理的问题。OkHttp主要支持有以下特征:
- HTTP/2 支持发往同一主机的请求共享一个socket。
- 连接池减少了请求延迟(如果HTTP/2不可用)。
- 透明的GZIP减小了下载数据量大小。
- 响应缓存阻止了网络的重复请求。
通常OkHttp在网络出现常见的连接问题时能够进行有效的恢复。例如当服务器有多个IP地址时,在第一次请求连接失败后,OkHttp会尝试切换下一个IP地址进行连接。这在同时具备IPV4+IPV6地址或服务处于冗余数据中心的情况下非常有必要。OkHttp初始化新连接时使用最新的TLS特征(SNI,ALPN),如果在握手失败时会回退到TLS 1.0尝试进行连接。
使用OkHttp非常简单。它的请求/响应 API采用流式生成器(fluent builders)和 immutability设计。它同时支持同步阻塞调用和异步回调调用。(关于fluent builders查看Fluent Interface)
OkHttp支持Android2.3及后续版本。JAVA最低版本需求为1.7。
示例
GET方式
示例展示了如何使用OkHttp进行GET请求,它下载URL的对应数据并且以字符串形式打印它的内容:
|
|
POST方式
程序展示了如何post数据到服务器:
依赖
OkHttp依赖Okio。