在前文已经说到在MainClientExec#execute中充连接池中获取连接,那么拿到连接之后如何把socket绑定到这个连接对象中的呢。
还是在MainClientExec#execute中获取连接下面还有这么一段代码
if (!managedConn.isOpen()) { //连接是否打开 其实就是判断连接对象中的socket连接是否为空
this.log.debug("Opening connection " + route);
try {
establishRoute(proxyAuthState, managedConn, route, request, context);
} catch (final TunnelRefusedException ex) {
if (this.log.isDebugEnabled()) {
this.log.debug(ex.getMessage());
}
response = ex.getResponse();
break;
}
}
若是socket还没绑定则调用establishRoute方法
void establishRoute(
final AuthState proxyAuthState,
final HttpClientConnection managedConn,
final HttpRout

本文深入探讨HttpClient4.5在执行请求时如何从连接池中获取连接,并详细解析如何将Socket绑定到连接对象的过程,通过MainClientExec的execute方法中的关键步骤进行说明。
最低0.47元/天 解锁文章
2451

被折叠的 条评论
为什么被折叠?



