Android Guides | Samples

Org.Apache.Http.Protocol Namespace

HttpRequestExecutor is a processor for the client side, HttpService for the server side.


HTTP protocol execution framework. Apart from simply sending and receiving messages, there are a lot of things to consider when communicating with HTTP. Many details such as transport encodings or connection management are handled by setting up or interpreting IHeader in the messages. In order to relieve applications from the responsibility of implementing these nitty-gritty details of the protocol, HTTP components provides an execution framework that sets up some of the headers before sending a message, and interprets headers when a message has been received.
An HTTP IHttpProcessor typically keeps lists of so-called interceptors that will be executed before a message is sent and after it has been received. An application should initialize a processor, set up the lists with the required and desired processors, and then communicate through that processor. There are four kinds of interceptors, depending on whether they act on IHttpRequestInterceptor or IHttpResponseInterceptor, on the client or server side:
Requestprepares headers before a request is sentinterprets headers when a request is received
Responseinterprets headers when a response is receivedprepares headers before a response is sent

HttpRequestExecutor is a processor for the client side, HttpService for the server side. On the client side, a HttpContext is used to tie together a request, the response to it, and other data that might be associated with the request execution. It is passed to the request executor whenever needed.

Information about required and recommended interceptors for the client side will be provided elsewhere. For the time being, please refer to the comments in the example applications or ask on one of the mailing lists.

Note: If you want to develop a server-side application, we recommend that you implement your application as a servlet running in a servlet engine like or full-blown JSEE container like . If you prefer to implement a server-side application based on our HttpService, we'll assume that you know what you're doing and that you don't need help in figuring out which interceptors need to be configured.


BasicHttpContextDefault implementation of the HttpContext.
BasicHttpProcessorKeeps lists of interceptors for processing requests and responses.
DefaultedHttpContext HttpContext implementation that delegates resolution of an attribute to the given default HttpContext instance if the attribute is not present in the local one.
ExecutionContext HttpContext attribute names for protocol execution.
HTTPConstants and static helpers related to the HTTP protocol.
HttpContextA context for executing a request.
HttpDateGeneratorGenerates a date in the format required by the HTTP protocol.
HttpRequestExecutorSends HTTP requests and receives the responses.
HttpRequestHandlerRegistryMaintains a map of HTTP request handlers keyed by a request URI pattern.
HttpServiceMinimalistic server-side implementation of an HTTP processor.
IHttpContextA context for executing a request.
IHttpExpectationVerifierDefines an interface to verify whether an incoming HTTP request meets the target server's expectations.
IHttpProcessorPerforms interceptor processing of requests and responses.
IHttpRequestHandler [Android Documentation]
IHttpRequestHandlerResolverInterface to be implemented by objects that can resolve IHttpRequestHandler instances by request URI.
IHttpRequestInterceptorListProvides access to an ordered list of request interceptors.
IHttpResponseInterceptorListProvides access to an ordered list of response interceptors.
RequestConnControlA request interceptor that suggests connection keep-alive to the server.
RequestContentA request interceptor that decides about the transport encoding.
RequestDateA request interceptor that adds a Date header.
RequestExpectContinueA request interceptor that enables the expect-continue handshake.
RequestTargetHostA request interceptor that sets the Host header for HTTP/1.1 requests.
RequestUserAgentA request interceptor that adds a User-Agent header.
ResponseConnControlA response interceptor that suggests connection keep-alive to the client.
ResponseContentA response interceptor that sets up entity-related headers.
ResponseDateA response interceptor that adds a Date header.
ResponseServerA response interceptor that adds a Server header.
SyncBasicHttpContextThread-safe extension of the BasicHttpContext.
UriPatternMatcherMaintains a map of objects keyed by a request URI pattern.