Top Description Methods
org.apache.http.conn

public Interface ManagedClientConnection

extends HttpRoutedConnection, ManagedHttpClientConnection, ConnectionReleaseTrigger
Known Direct Implementers
org.apache.http.impl.conn.AbstractClientConnAdapter, org.apache.http.impl.conn.ManagedClientConnectionImpl
Annotations
@Deprecated
Imports
java.io.IOException, java.util.concurrent.TimeUnit, javax.net.ssl.SSLSession, org.apache.http.HttpHost, org.apache.http.conn.routing.HttpRoute, org.apache.http.params.HttpParams, org.apache.http.protocol.HttpContext

Deprecated

(4.3) replaced by HttpClientConnectionManager.

A client-side connection with advanced connection logic. Instances are typically obtained from a connection manager.
Since
4.0

Method Summary

Modifier and TypeMethod and Description
public HttpRoute

Returns:

the route established so far, or null if not connected
getRoute
()

Redeclares org.apache.http.conn.HttpRoutedConnection.getRoute.

Obtains the current route of this connection.
public SSLSession

Returns:

the underlying SSL session if available, null otherwise
getSSLSession
()

Redeclares org.apache.http.conn.HttpRoutedConnection.getSSLSession, org.apache.http.conn.ManagedHttpClientConnection.getSSLSession.

Obtains the SSL session of the underlying connection, if any.
public Object

Returns:

The state object
getState
()

Returns the state object associated with this connection.

public boolean

Returns:

true if this connection is marked as being in a reusable communication state, false otherwise
isMarkedReusable
()

Indicates whether this connection is in a reusable communication state.

public boolean

Returns:

true if this connection is secure, false otherwise
isSecure
()

Redeclares org.apache.http.conn.HttpRoutedConnection.isSecure.

Indicates whether this connection is secure.
public void
layerProtocol(HttpContext
the context for layering on top of this connection
context
,
HttpParams
the parameters for layering on top of this connection
params
)

Deprecated as a consequence of HttpParams being deprecated.
Layers a new protocol on top of a tunnelled connection.
public void
markReusable()

Marks this connection as being in a reusable communication state.

public void
open(HttpRoute
the route along which to open. It will be opened to the first proxy if present, or directly to the target.
route
,
HttpContext
the context for opening this connection
context
,
HttpParams
the parameters for opening this connection
params
)

Deprecated as a consequence of HttpParams being deprecated.
Opens this connection according to the given route.
public void
setIdleDuration(long duration, TimeUnit unit)

Sets the duration that this connection can remain idle before it is reused.

public void
setState(Object
The state object
state
)

Assigns a state object to this connection.

public void
tunnelProxy(HttpHost
the proxy to which the tunnel was established. This is not the proxy through which the tunnel was established, but the new end point of the tunnel. The tunnel does not yet reach to the target, use tunnelTarget to indicate an end-to-end tunnel.
next
,
boolean
true if the connection should be considered secure, false otherwise
secure
,
HttpParams
the parameters for tunnelling this connection
params
)

Deprecated as a consequence of HttpParams being deprecated.
Indicates that a tunnel to an intermediate proxy has been established.
public void
tunnelTarget(boolean
true if the tunnel should be considered secure, false otherwise
secure
,
HttpParams
the parameters for tunnelling this connection
params
)

Deprecated as a consequence of HttpParams being deprecated.
Indicates that a tunnel to the target has been established.
public void
unmarkReusable()

Marks this connection as not being in a reusable state.

Inherited from org.apache.http.conn.ConnectionReleaseTrigger:
abortConnectionreleaseConnection
Inherited from org.apache.http.conn.ManagedHttpClientConnection:
bindgetIdgetSocket

Method Detail

getRouteback to summary
public HttpRoute getRoute()

Redeclares org.apache.http.conn.HttpRoutedConnection.getRoute.

Obtains the current route of this connection.

Returns:HttpRoute

the route established so far, or null if not connected

Annotations
@Override
getSSLSessionback to summary
public SSLSession getSSLSession()

Redeclares org.apache.http.conn.HttpRoutedConnection.getSSLSession, org.apache.http.conn.ManagedHttpClientConnection.getSSLSession.

Obtains the SSL session of the underlying connection, if any. If this connection is open, and the underlying socket is an SSLSocket, the SSL session of that socket is obtained. This is a potentially blocking operation.

Note

Whether the underlying socket is an SSL socket can not necessarily be determined via isSecure. Plain sockets may be considered secure, for example if they are connected to a known host in the same network segment. On the other hand, SSL sockets may be considered insecure, for example depending on the chosen cipher suite.

Returns:SSLSession

the underlying SSL session if available, null otherwise

Annotations
@Override
getStateback to summary
public Object getState()

Returns the state object associated with this connection.

Returns:Object

The state object

isMarkedReusableback to summary
public boolean isMarkedReusable()

Indicates whether this connection is in a reusable communication state. See markReusable and unmarkReusable for details.

Returns:boolean

true if this connection is marked as being in a reusable communication state, false otherwise

isSecureback to summary
public boolean isSecure()

Redeclares org.apache.http.conn.HttpRoutedConnection.isSecure.

Indicates whether this connection is secure. The return value is well-defined only while the connection is open. It may change even while the connection is open.

Returns:boolean

true if this connection is secure, false otherwise

Annotations
@Override
layerProtocolback to summary
public void layerProtocol(HttpContext context, HttpParams params) throws IOException

Deprecated

as a consequence of HttpParams being deprecated. See corresponding docs for further information.

Layers a new protocol on top of a tunnelled connection. This is typically used to create a TLS/SSL connection through a proxy. The route is the one previously passed to open. It is not guaranteed that the layered connection is secure.

Parameters
context:HttpContext

the context for layering on top of this connection

params:HttpParams

the parameters for layering on top of this connection

Exceptions
IOException:
in case of a problem
markReusableback to summary
public void markReusable()

Marks this connection as being in a reusable communication state. The checkpoints for reuseable communication states (in the absence of pipelining) are before sending a request and after receiving the response in its entirety. The connection will automatically clear the checkpoint when used for communication. A call to this method indicates that the next checkpoint has been reached.

A reusable communication state is necessary but not sufficient for the connection to be reused. A route mismatch, the connection being closed, or other circumstances might prevent reuse.

openback to summary
public void open(HttpRoute route, HttpContext context, HttpParams params) throws IOException

Deprecated

as a consequence of HttpParams being deprecated. See corresponding docs for further information.

Opens this connection according to the given route.

Parameters
route:HttpRoute

the route along which to open. It will be opened to the first proxy if present, or directly to the target.

context:HttpContext

the context for opening this connection

params:HttpParams

the parameters for opening this connection

Exceptions
IOException:
in case of a problem
setIdleDurationback to summary
public void setIdleDuration(long duration, TimeUnit unit)

Sets the duration that this connection can remain idle before it is reused. The connection should not be used again if this time elapses. The idle duration must be reset after each request sent over this connection. The elapsed time starts counting when the connection is released, which is typically after the headers (and any response body, if present) is fully consumed.

setStateback to summary
public void setState(Object state)

Assigns a state object to this connection. Connection managers may make use of the connection state when allocating persistent connections.

Parameters
state:Object

The state object

tunnelProxyback to summary
public void tunnelProxy(HttpHost next, boolean secure, HttpParams params) throws IOException

Deprecated

as a consequence of HttpParams being deprecated. See corresponding docs for further information.

Indicates that a tunnel to an intermediate proxy has been established. This is used exclusively for so-called proxy chains, where a request has to pass through multiple proxies before reaching the target. In that case, all proxies but the last need to be tunnelled when establishing the connection. Tunnelling of the last proxy to the target is optional and would be indicated via tunnelTarget.

Parameters
next:HttpHost

the proxy to which the tunnel was established. This is not the proxy through which the tunnel was established, but the new end point of the tunnel. The tunnel does not yet reach to the target, use tunnelTarget to indicate an end-to-end tunnel.

secure:boolean

true if the connection should be considered secure, false otherwise

params:HttpParams

the parameters for tunnelling this connection

Exceptions
IOException:
in case of a problem
tunnelTargetback to summary
public void tunnelTarget(boolean secure, HttpParams params) throws IOException

Deprecated

as a consequence of HttpParams being deprecated. See corresponding docs for further information.

Indicates that a tunnel to the target has been established. The route is the one previously passed to open. Subsequently, layerProtocol can be called to layer the TLS/SSL protocol on top of the tunnelled connection.

Note

In HttpClient 3, a call to the corresponding method would automatically trigger the layering of the TLS/SSL protocol. This is not the case anymore, you can establish a tunnel without layering a new protocol over the connection.

Parameters
secure:boolean

true if the tunnel should be considered secure, false otherwise

params:HttpParams

the parameters for tunnelling this connection

Exceptions
IOException:
in case of a problem
unmarkReusableback to summary
public void unmarkReusable()

Marks this connection as not being in a reusable state. This can be used immediately before releasing this connection to prevent its reuse. Reasons for preventing reuse include error conditions and the evaluation of a reuse strategy.

Note

It is not necessary to call here before writing to or reading from this connection. Communication attempts will automatically unmark the state as non-reusable. It can then be switched back using markReusable.