End of life

The Commons HttpClient project is now end of life, and is no longer being developed. It has been replaced by the Apache HttpComponents project in its HttpClient and HttpCore modules, which offer better performance and more flexibility.

Scope

The HttpClient component supports the client-side of RFC 1945 (HTTP/1.0) and RFC 2616 (HTTP/1.1), several related specifications (RFC 2109 (Cookies), RFC 2617 (HTTP Authentication), etc.), and provides a framework by which new request types (methods) or HTTP extensions can be created easily.

The org.apache.commons.httpclient Package

The basis for the abstraction is provided by three primary types:

    HttpConnection
    represents a network connection to some HTTP host.
    HttpMethod
    represents a request to be made over some HttpConnection and contains the server's response.
    HttpState
    contains the HTTP attributes that may persist from request to request, such as cookies and authentication credentials.

and several simple bean-style classes:

HttpClient provides a simple "user-agent" implementation that will suffice for many applications, but whose use is not required.

HttpClient also provides several utilities that may be useful when extending the framework:

    HttpMethodBase
    an abstract base implementation of HttpMethod, which may be extended to create new method types or to support additional HTTP protocol features.
    HttpStatus
    an enumeration of HttpStatus codes.
    RequestOutputStream
    an OutputStream wrapper supporting the "chunked" transfer encoding.
    ResponseInputStream
    an InputStream wrapper supporting the "chunked" transfer encoding.
    URIUtil
    provides utilities for encoding and decoding URI's in the %HH format.

The org.apache.commons.httpclient.methods Package

The org.apache.commons.httpclient.methods package provides HttpMethod implementations of the most commonly used HTTP methods, including GET, POST, PUT, OPTIONS, HEAD and DELETE.