Date: 2005-02-08T11:24:57
Editor: RolandWeber
Wiki: Jakarta-HttpClient Wiki
Page: HttpClientApiRedesign
URL: http://wiki.apache.org/jakarta-httpclient/HttpClientApiRedesign
http context, sequence handler, and refactored authentication
Change Log:
------------------------------------------------------------------------------
@@ -40,13 +40,16 @@
a. {{{ HttpParams }}} interface
a. {{{ DefaultHttpParams }}} class implementing {{{ HttpParams }}} interface
- * Http request and Http response interfaces as defined in RFC 2616 and their
generic implementation
+ * Http request and Http response interfaces as defined in RFC 2616
a. {{{ HttpMessage }}} interface
a. {{{ HttpRequest }}} interface extending {{{ HttpMessage }}}
a. {{{ HttpResponse }}} interface extending {{{ HttpMessage }}}
a. {{{ HttpEntityEnclosingMessage }}} interface
a. {{{ HttpRequestParams }}} class
+
+ * generic implementations of the Http request and response interfaces
+
a. {{{ BasicHttpMessage }}} class implementing {{{ HttpMessage }}} interface
a. {{{ BasicHttpRequest }}} class extending {{{ BasicHttpMessage }}} and
implementing {{{ HttpRequest }}}
a. {{{ BasicHttpResponse }}} class extending {{{ BasicHttpMessage }}} and
implementing {{{ HttpResponse }}}, {{{ HttpEntityEnclosingMessage }}}
@@ -83,11 +86,18 @@
a. {{{ HttpFilter }}} interface
- * Http method executor capable of executing http requests and receiving Http
responses. This class also is capable of retrying failed requests and provides
a means of injecting a number of Http filters. This class DOES NOT provide
connection pooling/management facilities, and DOES NOT handle redirects and
authentication challenges.
+ * Http method executor capable of executing http requests and receiving Http
responses. This class also is capable of retrying failed requests and handling
followup requests through generic interfaces. It DOES NOT provide connection
pooling/management facilities, and DOES NOT implement redirects and
authentication itself.
a. {{{ HttpMethodExecutor }}} class
- a. {{{ HttpRequestRetryHandler }}} interface
+ a. {{{ HttpContext }}} class to keep all kinds of data related to the
execution of a request
+ a. {{{ HttpRequestRetryHandler }}} interface, to decide whether to retry
after a communication error
+ a. {{{ HttpSequenceHandler }}} interface, to generate followup requests if
required
+
+ * implementations of retry and sequence handlers
+
a. {{{ DefaultHttpRequestRetryHandler }}} class implementing {{{
HttpRequestRetryHandler }}} interface
+ a. {{{ DefaultRedirectSequenceHandler }}} class implementing {{{
HttpSequenceHandler }}}, to handle 30x responses
+ a. {{{ SequenceHandlerChain }}} class implementing {{{ HttpSequenceHandler
}}}, to manage a list of sequence handlers
* Most common Http request types: GET, POST, PUT, HEAD, TRACE
@@ -174,6 +184,13 @@
a. {{{ NTLMScheme }}} class implementing {{{ AuthScheme }}}
a. {{{ AuthChallengeParser }}} class
+ * Handling of 401 and 407 responses
+
+ a. {{{ StdAuthChallengeHandler }}} class implementing {{{
HttpSequenceHandler }}} interface
+ a. {{{ AuthorizationFilter }}} class implementing {{{ HttpFilter }}}, to
insert authorization headers into requests
+ a. {{{ AuthorizationContext }}} class for data sharing between the sequence
handler and the filter. Made available through the {{{ HttpContext }}} for a
request.
+
+
== http-conn ==
possible package name: '''org.apache.http.connections'''
@@ -278,13 +295,9 @@
* Http agent primitives
a. {{{ HttpClientParams }}} class
- a. {{{ AuthChallengeHandler }}} interface
- a. {{{ StdAuthChallengeHandler }}} class implementing {{{
AuthChallengeHandler }}} interface
- a. {{{ RedirectHandler }}} interface
- a. {{{ StdRedirectHandler }}} class implementing {{{ RedirectHandler }}}
interface
a. {{{ HttpHostParams }}} class
a. {{{ HostConfig }}} class
- a. {{{ HttpClient }}} class. Supports a simple dependency injection
mechanism to inject {{{ HttpConnectionManager }}}, {{{ AuthChallengeHandler
}}}, {{{ RedirectHandler }}}, {{{ HttpFilter }}} and possibly other
dependencies.
+ a. {{{ HttpClient }}} class. Sets up the {{{ HttpContext }}} for method
executions. Supports a simple dependency injection mechanism to inject {{{
HttpConnectionManager }}}, {{{ HttpSequenceHandler }}}, {{{ HttpFilter }}}, {{{
CookieStore }}} and possibly other dependencies.
* Complex entity types, based on commons-codec
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]