Release 2.0 Release Candidate 2 ------------------- Changes since Release 2.0 Beta 2: * Option to disable 'stale' connection check that may lead to a slight performance improvement at the cost of reduced reliability * Improved debug logging in multi-threaded connection manager * 21532 - Removed use of sun.* class in URI.java * 20481 - Changed query param encoding to UTF-8. * 21378 - Multiple transfer encoding headers are now handled properly. Non chunked transfer encodings are now handled correctly. Release 2.0 Beta 2 ------------------- Changes since Release 2.0 Beta 1: * 20240 - Cookies with null path are no longer rejected in the browser compatibility mode. * 20481 - Query parameters set via HttpMethodBase.setQueryString(NameValuePair[]) now correctly use 'application/x-www-form-urlencoded' encoding. * 20481 - POST method correctly applies 'application/x-www-form-urlencoded' encoding. * 20569 - Duplicate connection headers are now handled. * 20646 - Fixed NTLM proxy authentication via SSL. * 20665 - Changed URI to correctly handle path resolution according to http://www.apache.org/~fielding/uri/rev-2002/issues.html. In particular dot-segments are removed when not necessary. * 20938 - Connections are now closed when the request is missing a content length and is not chunked. * 20942 - Requests with DIGEST authentication are now correctly handled when redirected. * 21130 - DEFAULT_MAX_HOST_CONNECTIONS and DEFAULT_MAX_TOTAL_CONNECTIONS are now public in MultiThreadedHttpConnectionManager. * 21201 - URIs are now correctly rebuilt following a call to URI.normalize(). * 21202 - WireLogInputStream.read(byte[]) now logs the correct number of bytes. * Fixed path parsing in RFC2109 cookie spec. * Fixed possible NPE when reading an empty response body. * The various to*Charset() methods of URIUtil have been deprecated. 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)