说实话,okhttp的东西实在是有点多,不得不分开来总结。
接下来我们剖析一下okhttp的连接池。
连接池
如果我们频繁的进行Socket(TCP三次握手)和断开Socket连接(四次挥手),是非常消耗资源的并且浪费时间,HTTP中的keep Alive对于降低延迟和提升速度有很大作用。复用连接就需要对连接进行管理,这里就有了连接池。
一般在我们创建OkHttpClient的时候如果采用默认构造方法,默认构造函数中初始化了连接池。
public OkHttpClient() {
this(new Builder());
}
OkHttpClient(Builder builder) {
...
this.connectionPool = builder.connectionPool;
...
}
接下来我们看一看他的连接池:
public ConnectionPool() {
this(5, 5, TimeUnit.MINUTES);
}
public ConnectionPool(int maxIdleConnections, long keepAliveDuration, TimeUnit timeUnit) {
this.delegate = new RealCon