@Contract(threading=SAFE_CONDITIONAL) public class BasicHttpClientConnectionManager extends Object implements HttpClientConnectionManager, Closeable
该连接管理器将努力重新使用具有相同route的后续请求的连接。 但是,如果持久连接的路由与连接请求的路由不匹配,则将关闭现有连接并为给定的路由打开它。 如果连接已经被分配IllegalStateException被抛出。
该连接管理器实现应该在EJB容器内使用,而不是PoolingHttpClientConnectionManager 。
| Constructor and Description |
|---|
BasicHttpClientConnectionManager() |
BasicHttpClientConnectionManager(HttpClientConnectionOperator httpClientConnectionOperator, HttpConnectionFactory<HttpRoute,ManagedHttpClientConnection> connFactory) |
BasicHttpClientConnectionManager(Lookup<ConnectionSocketFactory> socketFactoryRegistry) |
BasicHttpClientConnectionManager(Lookup<ConnectionSocketFactory> socketFactoryRegistry, HttpConnectionFactory<HttpRoute,ManagedHttpClientConnection> connFactory) |
BasicHttpClientConnectionManager(Lookup<ConnectionSocketFactory> socketFactoryRegistry, HttpConnectionFactory<HttpRoute,ManagedHttpClientConnection> connFactory, SchemePortResolver schemePortResolver, DnsResolver dnsResolver) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
closeExpiredConnections()
关闭池中的所有过期连接。
|
void |
closeIdleConnections(long idletime, TimeUnit tunit)
关闭池中的空闲连接。
|
void |
connect(HttpClientConnection conn, HttpRoute route, int connectTimeout, HttpContext context)
在直接路由的情况下将底层连接套接字连接到连接目标,或者通过代理(或多个代理)路由时将第一个代理跳转到第一个代理跳转。
|
protected void |
finalize() |
ConnectionConfig |
getConnectionConfig() |
SocketConfig |
getSocketConfig() |
void |
releaseConnection(HttpClientConnection conn, Object state, long keepalive, TimeUnit tunit)
将连接释放给管理员,使其可以由其他用户重新使用。
|
ConnectionRequest |
requestConnection(HttpRoute route, Object state)
返回一个新的 ConnectionRequest ,从中可以获得HttpClientConnection或请求可以中止。
|
void |
routeComplete(HttpClientConnection conn, HttpRoute route, HttpContext context)
将连接标记为完全建立,并完成所有中间跳。
|
void |
setConnectionConfig(ConnectionConfig connConfig) |
void |
setSocketConfig(SocketConfig socketConfig) |
void |
shutdown()
关闭此连接管理器并释放分配的资源。
|
void |
upgrade(HttpClientConnection conn, HttpRoute route, HttpContext context)
在将所有中间代理跳数执行
CONNECT方法后,将底层连接套接字升级到TLS / SSL(或其他分层协议)
|
public BasicHttpClientConnectionManager(Lookup<ConnectionSocketFactory> socketFactoryRegistry, HttpConnectionFactory<HttpRoute,ManagedHttpClientConnection> connFactory, SchemePortResolver schemePortResolver, DnsResolver dnsResolver)
public BasicHttpClientConnectionManager(HttpClientConnectionOperator httpClientConnectionOperator, HttpConnectionFactory<HttpRoute,ManagedHttpClientConnection> connFactory)
public BasicHttpClientConnectionManager(Lookup<ConnectionSocketFactory> socketFactoryRegistry, HttpConnectionFactory<HttpRoute,ManagedHttpClientConnection> connFactory)
public BasicHttpClientConnectionManager(Lookup<ConnectionSocketFactory> socketFactoryRegistry)
public BasicHttpClientConnectionManager()
public void close()
close在接口
Closeable
close在接口
AutoCloseable
public SocketConfig getSocketConfig()
public void setSocketConfig(SocketConfig socketConfig)
public ConnectionConfig getConnectionConfig()
public void setConnectionConfig(ConnectionConfig connConfig)
public final ConnectionRequest requestConnection(HttpRoute route, Object state)
HttpClientConnectionManager复制
ConnectionRequest ,从中可以获得HttpClientConnection或请求可以中止。
请注意,新分配的连接可以在关闭状态返回。 该连接的消费者负责通过致电connect来完全建立到连接目标的路由 ,以便直接连接到目标或第一代理跳,可选地,在已经执行CONNECT方法之后调用upgrade方法来升级连接中间代理跳,最后拨打routeComplete将路由标记为完全完成。
requestConnection在接口
HttpClientConnectionManager
route - 所请求连接的HTTP路由。
state - 连接的预期状态或
null如果连接不预期携带任何状态。
public void releaseConnection(HttpClientConnection conn, Object state, long keepalive, TimeUnit tunit)
HttpClientConnectionManager复制
validDuration和timeUnit参数来定义管理器保持连接活动的validDuration timeUnit 。
releaseConnection在接口
HttpClientConnectionManager
conn - 要发布的受管连接。
keepalive - 此连接有效重用的持续时间。
tunit - 时间单位。
HttpClientConnectionManager.closeExpiredConnections()
public void connect(HttpClientConnection conn, HttpRoute route, int connectTimeout, HttpContext context) throws IOException
HttpClientConnectionManager复制
connect在接口
HttpClientConnectionManager
conn - 受管连接。
route - 连接的路由。
connectTimeout - 以毫秒为单位的连接超时。
context - 实际的HTTP上下文。
IOException
public void upgrade(HttpClientConnection conn, HttpRoute route, HttpContext context) throws IOException
HttpClientConnectionManager复制
CONNECT方法后,将底层连接套接字升级到TLS / SSL(或另一个分层协议)
upgrade在接口
HttpClientConnectionManager
conn - 管理连接。
route - 连接的路由。
context - 实际的HTTP上下文。
IOException
public void routeComplete(HttpClientConnection conn, HttpRoute route, HttpContext context) throws IOException
HttpClientConnectionManager复制
routeComplete在接口
HttpClientConnectionManager
conn - 受管连接。
route - 连接的路由。
context - 实际的HTTP上下文。
IOException
public void closeExpiredConnections()
HttpClientConnectionManager复制
在连接被释放时定义的时间段中尚未使用的池中的打开连接将被关闭。 目前分配的连接不受此方法的约束。 时间将以毫秒精度检查。
closeExpiredConnections在接口
HttpClientConnectionManager
public void closeIdleConnections(long idletime,
TimeUnit tunit)
HttpClientConnectionManager复制
在参数中给出的时间段中未使用的池中的打开连接将被关闭。 目前分配的连接不受此方法的约束。 时间将以毫秒精度检查
所有过期的连接也将关闭。
closeIdleConnections在接口
HttpClientConnectionManager
idletime - 要关闭连接的空闲时间
tunit -为对所述单元
idletime
HttpClientConnectionManager.closeExpiredConnections()
public void shutdown()
HttpClientConnectionManager复制
shutdown在接口
HttpClientConnectionManager
Copyright © 1999–2017 The Apache Software Foundation. All rights reserved.