一、概述:
HTTP是现代应用网络的方式。这就是我们交换数据和媒体的方式。有效地执行HTTP可以加快您的负载并节省带宽。
OkHttp是一个默认有效的HTTP客户端:
- HTTP / 2支持允许对同一主机的所有请求共享套接字。
- 连接池减少了请求延迟(如果HTTP / 2不可用)。
- 透明GZIP缩小了下载大小。
- 响应缓存完全避免网络重复请求。
当网络很麻烦时,OkHttp坚持不懈:它将从常见的连接问题中无声地恢复。如果您的服务有多个IP地址,如果第一次连接失败,OkHttp将尝试备用地址。这对于IPv4 + IPv6和冗余数据中心中托管的服务是必需的。OkHttp启动具有现代TLS功能(SNI,ALPN)的新连接,并在握手失败时回退到TLS 1.0。
使用OkHttp很简单。它的请求/响应API采用流畅的构建器和不变性设计。它支持同步阻塞调用和带回调的异步调用。
OkHttp支持Android 2.3及更高版本。对于Java,最低要求是1.7
引自官方网站:okhttp官网
二、简单使用:
1.导入jar包
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.11.0</version>
</dependency>
2.使用步骤
-
创建okHttp单例
采用枚举的方式创建线程安全的okHttpClient单例
/**
* Description :
* 获取okHttpClient单例
* @author : Jeason
* @date : Created in 2018/10/25 11:16
*/
public enum OkHttpClientObject {
CLIENT;
private OkHttpClient clientInstance;
private Integer connectTimeout_time = 10;
private Integer writeTimeout_time = 10;
private Integer readTimeout_time = 30;
OkHttpClientObject() {
clientInstance = new OkHttpClient.Builder()
.connectTimeout(connectTimeout_time, TimeUnit.SECONDS)
.writeTimeout(writeTimeout_time, TimeUnit.SECONDS)
.readTimeout(readTimeout_time, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.