Release 2.0 Beta 1 ------------------- Changes since Release 2.0 Alpha 3:  * Changed HttpConnection to use socket timeout instead of busy waiting while expecting input.  * Added a getResponseContentLength() method to HttpMethod.  * Changed HttpClient to accept correctly encoded URLs instead of attempting to encode them within HttpClient. * 'Expect: 100-continue' logic factored out into an abstract ExpectContinueMethod class  * 'Expect: 100-Continue' handshake disabled per default, as it may not work properly with older HTTP/1.0 servers or proxies.  * Reengineered authentication code.  This includes a fix for HttpClient continually attempting to authenticate to digest realms and provides for better future extensibility. * Authenticator class deprecated  * Improved user documentation and example code.  * Added ability to differentiate between different hosts using the same realm names.  * Added support for specifying a virtual host name to use.  * Fixed problem with half-closed connections causing a HttpRecoverableException to be thrown when HttpClient attempts to read from a socket.  * Improved reliability with the HEAD method and servers that incorrectly include a response body. * Improved support for connection keep-alive when communicating via a proxy * Added an override of HttpClient.executeMethod that lets the caller specify an HttpState object. * HttpConnectionManager is now a property of the HttpClient class, not of the HttpState class  * Added ability to specify the local address that HttpClient should create connections from. Release 2.0 Alpha 3 ------------------- Changes since Release 2.0 Alpha 2: * Abstract EntityEnclosingMethod class has been introduced to encapsulate common behaviour of all entity enclosing methods * "Expect: 100-continue" handshake support added for POST, PUT & multipart POST  * Added support for chunked requests for POST and PUT.  * Added support for 303 See Other redirections.  * Changed input and output streams to use buffering to improve performance.  * Improved handling of multivalue headers.  Order is now preserved and convenience methods have been added to access each value. * In non-strict mode each cookie sent with the request is put on a separate request header. In strict mode all cookies are crammed into one request header, as before. * ResponseInputStream class deprecated. * RequestOutputStream class deprecated. * Custom character set can be specified for all multipart classes. * Custom content type can be specified for FilePart derived multipart classes. * The useDisk methods in GetMethod class deprecated. Release 2.0 Alpha 2 ------------------ Changes since Release 2.0 Alpha 1: * Mavenized builds. * Digest authentication. NTLM authentication. * Multipart post. * Added a StatusLine class to manage the status line of a http response. * Added ability to cusomize SocketFactory for http and https. New Protocol class to allow for more protocols than just http/s. * Removed the HttpMultiClient, added multi-thread support to HttpClient. * Revamp the streaming policy. Added AutoCloseInputStream, ChunkedInputStream, ChunkedOutputStream, ContentLengthInputStream, ResponseConsumedWatcher * Commons Logging. Dependancy on the commons-logging.jar * Added httpclient.util package. Move Base64 and URIUtil classs into util. * Added a HttpURLConnection wrapper. Allows for wrapping HttpClient into the java standard library. Partial support only. * Added httpclient.cookie package. Complete overhaul of cookie handling. Allows for user specified CookiePolicy and various cookie specification classes. * Removed previously deprecated Cookie.createCookieHeader(String, String,boolean,Cookie[]) method (port number is required for future compatibility). * Also removed Cookie.createCookieHeader(String,String,Cookie[]) method, which should have been deprecated (port number is required for future compatibility) * Renamed HttpMethod.followRedirects to getFollowRedirects, for consistency (and made the corresponding change to HttpMethodBase)