Top Description Fields Constructors Methods
org.apache.http.impl

public Class DefaultConnectionReuseStrategy

extends Object
implements ConnectionReuseStrategy
Class Inheritance
All Implemented Interfaces
org.apache.http.ConnectionReuseStrategy
Annotations
@Contract
threading:IMMUTABLE
Imports
org.apache.http.ConnectionReuseStrategy, .Header, .HeaderIterator, .HttpHeaders, .HttpRequest, .HttpResponse, .HttpStatus, .HttpVersion, .ParseException, .ProtocolVersion, .TokenIterator, org.apache.http.annotation.Contract, .ThreadingBehavior, org.apache.http.message.BasicTokenIterator, org.apache.http.protocol.HTTP, .HttpContext, .HttpCoreContext, org.apache.http.util.Args

Default implementation of a strategy deciding about connection re-use. The default implementation first checks some basics, for example whether the connection is still open or whether the end of the request entity can be determined without closing the connection. If these checks pass, the tokens in the Connection header will be examined. In the absence of a Connection header, the non-standard but commonly used Proxy-Connection header takes it's role. A token close indicates that the connection cannot be reused. If there is no such token, a token keep-alive indicates that the connection should be re-used. If neither token is found, or if there are no Connection headers, the default policy for the HTTP version is applied. Since HTTP/1.1, connections are re-used by default. Up until HTTP/1.0, connections are not re-used by default.
Since
4.0

Field Summary

Modifier and TypeField and Description
public static final DefaultConnectionReuseStrategy

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private boolean
canResponseHaveBody(final HttpRequest request, final HttpResponse response)

protected TokenIterator

Returns:

the token iterator
createTokenIterator
(final HeaderIterator
the header iterator
hit
)

Creates a token iterator from a header iterator.

public boolean
keepAlive(final HttpResponse
The last response received over that connection.
response
,
final HttpContext
the context in which the connection is being used.
context
)

Implements org.apache.http.ConnectionReuseStrategy.keepAlive.

Decides whether a connection can be kept open after a request.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

INSTANCEback to summary
public static final DefaultConnectionReuseStrategy INSTANCE

Constructor Detail

DefaultConnectionReuseStrategyback to summary
public DefaultConnectionReuseStrategy()

Method Detail

canResponseHaveBodyback to summary
private boolean canResponseHaveBody(final HttpRequest request, final HttpResponse response)
createTokenIteratorback to summary
protected TokenIterator createTokenIterator(final HeaderIterator hit)

Creates a token iterator from a header iterator. This method can be overridden to replace the implementation of the token iterator.

Parameters
hit:HeaderIterator

the header iterator

Returns:TokenIterator

the token iterator

keepAliveback to summary
public boolean keepAlive(final HttpResponse response, final HttpContext context)

Implements org.apache.http.ConnectionReuseStrategy.keepAlive.

Doc from org.apache.http.ConnectionReuseStrategy.keepAlive.

Decides whether a connection can be kept open after a request. If this method returns false, the caller MUST close the connection to correctly comply with the HTTP protocol. If it returns true, the caller SHOULD attempt to keep the connection open for reuse with another request.

One can use the HTTP context to retrieve additional objects that may be relevant for the keep-alive strategy: the actual HTTP connection, the original HTTP request, target host if known, number of times the connection has been reused already and so on.

If the connection is already closed, false is returned. The stale connection check MUST NOT be triggered by a connection reuse strategy.

Parameters
response:HttpResponse

The last response received over that connection.

context:HttpContext

the context in which the connection is being used.

Returns:boolean

true if the connection is allowed to be reused, or false if it MUST NOT be reused

Annotations
@Override