Apache HttpComponents Client
============================

Welcome to the HttpClient component of the Apache HttpComponents project.

Building Instructions
---------------------

For building from source instructions please refer to BUILDING.txt.

Dependencies
------------

HttpClient main module requires Java 5.0 compatible runtime and
depends on the following external libraries:

* Apache HttpComponents HttpCore
* Apache Commons Logging
* Apache Commons Codec

(for detailed information on external dependencies please see pom.xml)

HttpMime module is optional and requires Java 5.0 compatible runtime
and depends on the following external libraries:

* Apache HttpComponents HttpCore
* Apache Commons Logging

(for detailed information on external dependencies please see pom.xml)

Licensing
---------

Apache HttpComponents Client is licensed under the Apache License 2.0.
See the files called LICENSE.txt and NOTICE.txt for more information.

Cryptographic Software Notice
-----------------------------

This distribution may include software that has been designed for use
with cryptographic software. The country in which you currently reside
may have restrictions on the import, possession, use, and/or re-export
to another country, of encryption software. BEFORE using any encryption
software, please check your country's laws, regulations and policies
concerning the import, possession, or use, and re-export of encryption
software, to see if this is permitted. See <http://www.wassenaar.org/>
for more information.

The U.S. Government Department of Commerce, Bureau of Industry and
Security (BIS), has classified this software as Export Commodity
Control Number (ECCN) 5D002.C.1, which includes information security
software using or performing cryptographic functions with asymmetric
algorithms. The form and manner of this Apache Software Foundation
distribution makes it eligible for export under the License Exception
ENC Technology Software Unrestricted (TSU) exception (see the BIS
Export Administration Regulations, Section 740.13) for both object
code and source code.

The following provides more details on the included software that
may be subject to export controls on cryptographic software:

  Apache HttpComponents Client interfaces with the
  Java Secure Socket Extension (JSSE) API to provide

    - HTTPS support

  Apache HttpComponents Client does not include any
  implementation of JSSE.

Contact
-------

  o For general information visit the main project site at
    http://hc.apache.org/

  o For current status information visit the status page at
    http://hc.apache.org/status.html
