~~ ==================================================================== ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ~~ ==================================================================== ~~ ~~ This software consists of voluntary contributions made by many ~~ individuals on behalf of the Apache Software Foundation. For more ~~ information on the Apache Software Foundation, please see ~~ . ----------- User Documentation Index {User Documentation} You are a user of HttpComponents if you are developing an application that makes use of our libraries. The documentation linked here is meant to help you understand how to use these libraries. The <> section points to documentation that is mostly API agnostic. Here you will find information that is useful, no matter whether you are using the new HttpComponents, or the Commons HttpClient 3.1, or even the standard Java HttpUrlConnection. Of course we put no emphasis on the latter. The <> section points to documentation for specific APIs, either the new HttpComponents, or the Commons HttpClient 3.1. Using the information there with other APIs will be tricky, if not impossible. {General Information} If you are just getting started, you'll probably start by retrieving some pages from a web server. The <> will give you valuable information for that. Once you are tackling more specific use cases, such as sending parameters to a servlet, or configuring a proxy within an applet, some of the FAQs may prove helpful. * {{{httpcomponents-client/primer.html} Client HTTP Programming Primer}} - The Primer describes how to submit an HTML form to a web server and retrieve the results. HTML forms are often used as login forms, so the Primer also tells you how to perform form-based login in your application. * {{{http://wiki.apache.org/HttpComponents/FrequentlyAskedApplicationDesignQuestions} Application Design FAQ}} - This FAQ addresses problems such as uploading files and configuring proxies based on JVM settings. It also explains the different ways in which a client may authenticate against a server. * {{{http://wiki.apache.org/HttpComponents/FrequentlyAskedConnectionManagementQuestions} Connection Management FAQ}} - This FAQ addresses questions related to connection management, for example where sockets in state TIME_WAIT come from. Although the API is different, connection management in the new HttpClient works similar to that in the Commons HttpClient 3.1. The standard Java HttpUrlConnection also manages connections, though we're not really concerned about that. {API Specific Information} * {Official tutorials and guides} * {{{httpcomponents-core/tutorial/html/}HttpCore tutorial}} - Detailed HttpCore API tutorail. * {{{httpcomponents-client/tutorial/html/}HttpClient tutorial}} - Detailed HttpClient API tutorail. * {{{httpcomponents-client/ntlm.html}NTLM support}} - How to enable support for NTLM authentication in HttpClient. * {{{httpcomponents-client/logging.html}Logging guide}} - How to enable internal context / wire logging in HttpClient. * {JavaDocs} * {{{httpcomponents-core/httpcore/apidocs/index.html}HttpCore API}} * {{{httpcomponents-core/httpcore-nio/apidocs/index.html}HttpCore NIO API}} * {{{httpcomponents-client/httpclient/apidocs/index.html}HttpClient API}} * {{{httpcomponents-client/httpmime/apidocs/index.html}HttpMime API}} * {Example Code} * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/module-main/src/examples/org/apache/http/examples/} HttpCore}} * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/module-nio/src/examples/org/apache/http/examples/nio/} HttpCore NIO}} * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/} HttpClient}} * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-httpmime/src/examples/org/apache/http/examples/entity/mime/} HttpMime}} Example code is meant to help you understand the API. It is also shipped with releases. * {Code contributions} * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/contrib/src/main/java/org/apache/http/contrib/} HttpCore}} Contribution code can provide useful additional functionality or examples. It is , and not shipped with releases. * {User contributed documentation} * {{{http://wiki.apache.org/HttpComponents/GeneralHttpCoreIntroduction} Building custom HTTP agents based on HttpCore}} - The tutorial provides a general introduction into the HttpCore API and explains in details how to build a custom HTTP agent based on HttpCore. * {Commons HttpClient 3.1 (legacy)} * {{{httpclient-3.x/tutorial.html}Tutorial}} - Explains how to use HttpClient 3.1 in simple scenarios. The concepts still apply to the new HttpClient 4.0, but the API has changed completely. * {{{httpclient-3.x/troubleshooting.html}Troubleshooting}} - Explains how to avoid common errors, and how to report the uncommon ones. * {{{httpclient-3.x/userguide.html}User Guide}} - The HttpClient 3.1 User Guide is a selection of guides for specific topics such as Authentication, Multi-Threaded Applications, SSL, and others.