Apache Commons HttpClient 4.3

A Java library for client-side HTTP communication
Support is present for HTTP/1.1 and HTTP/1.0, plus various authentication schemes and cookie policies.

Thanks to it's widespread use and years of development, it is a very mature and stable codebase.

However, due to limitations in the API design, Commons HttpClient will eventually be replaced by HttpClient 4.0 with a completely redesigned API based on HttpCore.

Main features:

  • Features:
  • Standards based, pure Java, implementation of HTTP versions 1.0 and 1.1
  • Full implementation of all HTTP methods (GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE) in an extensible OO framework.
  • Supports encryption with HTTPS (HTTP over SSL) protocol.
  • Granular non-standards configuration and tracking.
  • Transparent connections through HTTP proxies.
  • Tunneled HTTPS connections through HTTP proxies, via the CONNECT method.
  • Transparent connections through SOCKS proxies (version 4 & 5) using native Java socket support.
  • Authentication using Basic, Digest and the encrypting NTLM (NT Lan Manager) methods.
  • Plug-in mechanism for custom authentication methods.
  • Multi-Part form POST for uploading large files.
  • Pluggable secure sockets implementations, making it easier to use third party solutions
  • Connection management support for use in multi-threaded applications. Supports setting the maximum total connections as well as the maximum connections per host. Detects and closes stale connections.
  • Automatic Cookie handling for reading Set-Cookie: headers from the server and sending them back out in a Cookie: header when appropriate.
  • Plug-in mechanism for custom cookie policies.
  • Request output streams to avoid buffering any content body by streaming directly to the socket to the server.
  • Response input streams to efficiently read the response body by streaming directly from the socket to the server.
  • Persistent connections using KeepAlive in HTTP/1.0 and persistance in HTTP/1.1
  • Direct access to the response code and headers sent by the server.
  • The ability to set connection timeouts.
  • HttpMethods implement the Command Pattern to allow for parallel requests and efficient re-use of connections.
  • Source code is freely available under the Apache Software License.
  • Standard Compliance:
  • RFC1945 Hypertext Transfer Protocol -- HTTP/1.0
  • RFC2616 Hypertext Transfer Protocol -- HTTP/1.1
  • RFC2617 HTTP Authentication: Basic and Digest Access Authentication
  • RFC2109 HTTP State Management Mechanism (Cookies)
  • RFC2396 Uniform Resource Identifiers (URI): Generic Syntax
  • RFC1867 Form-based File Upload in HTML

last updated on:
September 16th, 2013, 7:47 GMT
developed by:
Apache Software Foundation
license type:
Apache License
operating system(s):
Windows / Linux / Mac OS / BSD / Solaris
C: \ Development Tools \ Other Libraries


In a hurry? Add it to your Download Basket!

user rating



What's New in This Release:
  • Support for Java 7 try-with-resources for resource management (connection release).
  • Added fluent Builder classes for HttpEntity, HttpRequest, HttpClient and SSLContext instances.
  • Deprecation of preference and configuration API based on HttpParams interface in favor of constructor injection and plain configuration objects.
  • Reliance on object immutability instead of access synchronization for thread safety. Several old classes whose instances can be shared by multiple request exchanges have been replaced by immutable equivalents.
read full changelog

Add your review!