Commit Graph

271 Commits

Author SHA1 Message Date
Ryan Schmitt 4ee9d3107f Revert "Use connectTimeout as TLS handshake timeout"
This reverts commit d3e34f70c4. Although
this commit did fix TLS handshake timeouts, it then broke response
timeouts by causing the connectTimeout to also be used as a
socketTimeout (even after the TLS connection is established.)
2018-11-30 15:02:23 -08:00
Oleg Kalnichevski 03de3ab16c Removed experimental CredSsp auth scheme 2018-11-16 10:26:16 +01:00
Ryan Schmitt d3e34f70c4 Use connectTimeout as TLS handshake timeout 2018-11-13 13:47:18 -08:00
Oleg Kalnichevski de59e984c7 Code simplification; removed dependency on classic API specific classes 2018-11-08 10:55:42 +01:00
Oleg Kalnichevski 56b43f388b Upgraded download-maven-plugin to version 1.4.1 2018-11-03 14:25:23 +01:00
Oleg Kalnichevski 3c25ca7266 HTTPCLIENT-1949: DigestScheme to use HttpRequest#getRequestUri instead of HttpRequest#getPath 2018-10-30 13:06:30 +01:00
Oleg Kalnichevski 65802bc8d3 Added reference to JDK-8212885 2018-10-29 11:18:32 +01:00
Oleg Kalnichevski eb0ee46c05 Upgraded HttpClient version to 5.0-beta3-SNAPSHOT 2018-10-27 10:30:11 +02:00
Oleg Kalnichevski 83f9ab8d1d HttpClient 5.0-beta2 release 2018-10-23 15:40:37 +02:00
Oleg Kalnichevski d799a588ef Hack to make hostname verification work with TLSv1.3 resumed sessions 2018-10-23 09:28:40 +02:00
Oleg Kalnichevski 75ca519314 Added #responseTimeout to RequestConfig 2018-10-22 15:52:03 +02:00
Oleg Kalnichevski b74cb12d44 Renamed RequestConfig#connectionTimeout to RequestConfig#connectTimeout 2018-10-22 15:14:04 +02:00
Ryan Schmitt e92c75be8a HTTPCLIENT-1942: Add example of full-duplex reactive message exchange 2018-10-22 11:45:02 +02:00
Oleg Kalnichevski 64470a970d Use Timeout instead of long / TimeUnit 2018-10-22 11:37:14 +02:00
Oleg Kalnichevski 160bac0cbb Fixed inconsistencies in usage of RequestConfig#connectionTimeout and Request#connectionRequestTimeout 2018-10-22 10:44:00 +02:00
Oleg Kalnichevski f4bb8fec5b Tweaked expected exception check in FutureRequestExecutionService test 2018-10-21 19:32:13 +02:00
Oleg Kalnichevski 8150e37cc3 Do not enforce HTTP/2 TLS requirements in case of FORCE_HTTP_1 protocol version policy 2018-10-21 19:11:27 +02:00
Oleg Kalnichevski 309afeff07 Added builders for SSLConnectionSocketFactory and client TlsStrategy 2018-10-21 16:52:40 +02:00
Oleg Kalnichevski 1eab98760b Added enum for supported TLS versions & TLS version parser 2018-10-21 16:52:40 +02:00
Oleg Kalnichevski e72d745ecd Extracted hostname verification code into a separate support class 2018-10-21 16:52:40 +02:00
Oleg Kalnichevski 2b6f7e53d0 HTTPCLIENT-1946: handling of 308 status as per RFC 7538 2018-10-21 13:40:46 +02:00
Oleg Kalnichevski 8ebb629563 Javadoc cleanup 2018-10-21 13:34:45 +02:00
Oleg Kalnichevski ab7be3fd53 Upgraded HttpCore to version 5.0-beta5 2018-10-21 13:24:49 +02:00
Oleg Kalnichevski 37c8006472 Javadocs; renamed some methods (no functional changes) 2018-10-17 23:40:12 +02:00
Oleg Kalnichevski c446639820 AsyncConnectionEndpoint to support graceful and immediate close modes 2018-10-17 14:31:12 +02:00
Oleg Kalnichevski a1d6db5ec3 Simplified ManagedAsyncClientConnection interface 2018-10-17 13:16:29 +02:00
Oleg Kalnichevski 447e276fb6 HttpAuthenticator to re-use the logger of its parent 2018-10-16 16:18:25 +02:00
Oleg Kalnichevski ac90342039 Use enums for supported cookie policies and auth schemes 2018-10-14 20:05:17 +02:00
Oleg Kalnichevski 9e8ab71517 Use HttpUriRequest interface for a better compatibility with HttpClient 4.x 2018-10-14 17:59:10 +02:00
Oleg Kalnichevski 49cdb631f5 Made classic and async execution runtime APIs more consistent 2018-10-14 16:52:21 +02:00
Oleg Kalnichevski 49487b4fe5 Moved class to another package (no functional changes) 2018-10-14 15:11:16 +02:00
Oleg Kalnichevski 678cc1bcb8 Updated BASIC and DIGET preemptive authentication examples 2018-10-05 17:41:25 +02:00
Oleg Kalnichevski 0fb2060fcb DigestScheme to expose last nonce and nonce count values 2018-10-05 17:41:25 +02:00
Gary Gregory 8e486b356e Reuse our UriScheme enum instead of magic strings. 2018-10-03 09:25:17 -06:00
Gary Gregory d711bd637e Add org.apache.hc.client5.http.config.RequestConfig.toString() and
camcel-case an ivar.
2018-09-21 18:04:38 -06:00
Oleg Kalnichevski 9eb00018ce Async clients to support request specific push consumers 2018-09-20 17:16:06 +02:00
Johnny Lim 6fec5136dd Fix typo 2018-09-04 11:13:52 +02:00
Ryan Schmitt b2f09ae0eb Enable hard cancellation by default
This change makes request cancellation behavior more consistent across
different client types (blocking, non-blocking HTTP/1.1, and HTTP/2).
2018-08-31 13:24:38 -07:00
Ryan Schmitt ec99279712 HTTPCLIENT-1944: Add hardCancellationEnabled option to RequestConfig 2018-08-30 18:24:30 -07:00
Oleg Kalnichevski cbe00beb56 Removed duplicate class (no functional changes) 2018-08-30 11:36:46 +02:00
Oleg Kalnichevski 1614c25168 Upgraded HttpCore dependency to version 5.0-beta3 2018-08-30 10:54:54 +02:00
Gary Gregory 3aa9c1fd33 - Always use blocks
- Add missing serial version ID (default 1L)
- Camel-case names.
- Don't nest in else clause unnecessarily.
- Remove declared exceptions that are not thrown (but don't break BC.)
- Remove redundant superinterface
- Access static methods directly
- Better local var names.
2018-08-14 20:56:08 +02:00
Mark Mielke d4be433a76 Fix HttpClient 4.5.4 regression in BasicCookieStore serialization.
HttpClient 4.5.4 modified BasicCookieStore to introduce a new
ReadWriteLock field to improve performance. Unfortunately this
also changed the serialized data structure, and any objects
serialized using HttpClient 4.5.3 and before would be unusable
after restore in HttpClient 4.5.4 due to the new "lock" field
being null.

The fix is to change "lock" to be transient, and ensure it is
correctly instantiated upon object restore. This restores
compatibility with HttpClient 4.5.3, as well as maintaining
compatible with the intermediate versions containing the
regression. This also avoids unnecessary serialization of
the new "lock" field, which does not need to be persisted.
2018-08-08 16:43:45 +02:00
Gary Gregory 769e9fab3f Add missing @Override annotations. 2018-08-05 11:40:07 -06:00
Gary Gregory c3bdc8913f Refactor common code in a new Closer utility class. 2018-08-04 23:55:41 +02:00
Gary Gregory 8d87cf515b Static methods should be accessed directly. Remove redundant type
arguments. Remove exceptions not thrown from method signatures. Add
missing @Override. Remove unnecessary semicolons. Don't nest
unnecessarily.
2018-08-04 10:40:01 -06:00
Oleg Kalnichevski 50802106f6 HTTPCLIENT-1934: H2 TLS strategy passes wrong hostname to the hostname verifier 2018-07-17 11:27:20 +02:00
Oleg Kalnichevski b97c7a08b2 HTTPCLIENT-1933: fixed incorrect method names 2018-07-15 12:28:40 +02:00
Oleg Kalnichevski fa4a4d3bd6 HTTPCLIENT-1931, HTTPCLIENT-1932: Changed ClassicHttpRequests factory methods to return HttpUriRequestBase; added SimpleHttpRequests factory enum 2018-07-14 12:44:59 +02:00
Gary Gregory 92ee24efb8 Javadoc. 2018-07-14 11:29:32 +02:00
Gary Gregory db417d80ba - [HTTPCLIENT-1931] Add factory enum
org.apache.hc.client5.http.classic.methods.ClassicHttpRequests
- [HTTPCLIENT-1932] Add factory enum
org.apache.hc.client5.http.aysnc.methods.HttpRequests
2018-07-13 20:18:33 +02:00
Gary Gregory 7875ab19df Use "String.isEmpty()" instead of "String.length() == 0" 2018-07-12 09:06:57 -06:00
xiaohu-zhang 0c0e9c7b7c HTTPCLIENT-1928: FutureCallback implementation that catches and logs exceptions thrown in #completed method 2018-07-11 17:20:46 +02:00
Oleg Kalnichevski fd952c8654 HTTPCLIENT-1882: reset authentication state on I/O or runtime error for connection based authentication schemes (such as NTLM) 2018-07-04 17:17:38 +02:00
Oleg Kalnichevski ec22a46866 HTTPCLIENT-1924: HttpClient to shut down the connection manager if a fatal error occurs in the course of a request execution 2018-06-17 10:35:28 +02:00
Oleg Kalnichevski 6570228118 Pooling connection managers to implement graceful and immediate shut down 2018-06-16 11:39:24 +02:00
Oleg Kalnichevski 60571ae8fa Fixed inconsistent method name 2018-05-17 16:39:51 +02:00
Oleg Kalnichevski a6a29892fa HTTPCORE-524: updated examples to use nghttp2.org instead of no longer functional http2bin.org 2018-05-10 15:58:49 +02:00
Oleg Kalnichevski e3cdb72de7 Added examples of full-duplex HTTP/1.1 and HTTP/2 message exchanges 2018-03-15 11:54:11 +01:00
Oleg Kalnichevski feb6a5fbdc Simplified signature of #execute methods that take AsyncClientExchangeHandler as a parameter 2018-03-15 11:53:31 +01:00
Oleg Kalnichevski 70ee2d4912 Minimal HttpAsyncClient to resolve default protocol scheme port when leasing endpoints 2018-03-13 21:21:42 +01:00
Oleg Kalnichevski 56cc24525e HTTPCLIENT-1906: certificates containing alternative subject names other than DNS and IP (such as RFC822) get rejected as invalid 2018-02-26 15:10:57 +01:00
Hans-Peter Keck a2cc0a511b HTTPCLIENT-1904: check cookie domain for null 2018-02-09 11:57:11 +01:00
Oleg Kalnichevski 4f7df3d0a2 HTTPCLIENT-1900: proxy protocol processor in the CONNECT exec interceptor does not post-process CONNECT response messages 2018-01-27 10:24:40 +01:00
Gary Gregory ceec7eeaa6 [HTTPCLIENT-1898] Incorrect comment in example class
ClientMultiThreadedExecution.java
2018-01-23 21:01:06 -07:00
Oleg Kalnichevski 68fd176c07 Upgraded HttpClient version to 5.0-beta2-SNAPSHOT 2018-01-18 10:02:04 +01:00
Oleg Kalnichevski 67be267f99 HttpClient 5.0-beta1 release 2018-01-15 13:30:04 +01:00
Oleg Kalnichevski 1e5fe0e01c DefaultHostnameVerifier to use a custom distinguished name (DN) parser instead of LdapName; removed dependency on Java Naming extensions 2018-01-12 18:47:56 +01:00
Oleg Kalnichevski 10126c70ff HTTP/2 client implementations to support cancellation of ongoing message exchanges without terminating the underlying connections 2018-01-12 14:40:32 +01:00
Oleg Kalnichevski 695f353b43 Re-use concurrent primitives from HttpCore 2018-01-12 14:20:10 +01:00
Oleg Kalnichevski dee32207e3 Upgraded HttpCore dependency to version 5.0-beta2 2018-01-12 14:06:08 +01:00
Sudheera Palihakkara a7a70e8cd4 HTTPCLIENT-1895: added test case for multi-member GZIP content streams (per RFC 1952) 2018-01-11 14:29:12 +01:00
Oleg Kalnichevski eb71f45ee5 SLF4J logging facade 2018-01-10 13:07:37 +01:00
Oleg Kalnichevski 16147b1852 Completed rewrite of re-validation code in the classic caching exec interceptor; added re-validation to the async caching exec interceptor 2018-01-08 11:13:17 +01:00
Oleg Kalnichevski 1c73280983 Support for execution forks (concurrent request execution) by request execution interceptors 2018-01-04 11:21:01 +01:00
Oleg Kalnichevski 26bb4b6b9c Renamed ExecRuntimeImpl to InternalExecRuntime (no functional changes) 2018-01-04 10:37:00 +01:00
Oleg Kalnichevski 47a0eb8b65 HTTPCLIENT-1893: Moved HttpContext state logic out of DefaultRedirectStrategy to the redirect execution interceptors; redesigned RedirectLocations class; refactored classic redirect execution interceptor unit tests 2018-01-03 19:37:19 +01:00
Oleg Kalnichevski b45b72ef77 Added HTTP routing support class; simplified HttpRoutePlanner API 2018-01-03 19:37:12 +01:00
Oleg Kalnichevski db4b6db79f Moved ByteArrayBuilder class (no functional changes) 2018-01-03 14:36:20 +01:00
Oleg Kalnichevski 6459d6882c Added Date util methods for common operations 2017-12-26 17:18:20 +01:00
Oleg Kalnichevski 1e4e204162 Request execution futures to cancel dependent operations when cancelled by the caller 2017-12-23 11:21:55 +01:00
Oleg Kalnichevski e262842466 Added Cancellable convenience methods 2017-12-23 10:48:46 +01:00
Gary Gregory 9931a9ca94 Replace use of String.indexOf(String) for strings of length one with
indexOf(char)
2017-12-06 09:29:06 -07:00
Oleg Kalnichevski cca56bebe9 AuthScope cleanup 2017-12-05 15:16:05 +01:00
Oleg Kalnichevski 4a55a8cfbd HTTPCLIENT-1885: Content compression exec interceptor generates incorrect 'Accept-Encoding' header value 2017-11-28 10:22:56 +01:00
Oleg Kalnichevski 2b2dd593a3 HTTPCLIENT-1883: SystemDefaultCredentialsProvider to use https.proxy* system properties for origins with port 443 2017-11-26 17:09:59 +01:00
Oleg Kalnichevski 2584dbd311 HTTPCLIENT-1883: Added https.proxy* to the list of system properties taken into account by HttpClientBuilder and HttpAsyncClientBuilder 2017-11-26 16:37:29 +01:00
Oleg Kalnichevski 8f8efa9d6e CredSspScheme to require a valid SSLContext 2017-11-24 22:44:44 +01:00
Oleg Kalnichevski 0c6aaee0b6 Marked CREDSSP auth scheme experimental 2017-11-24 22:40:45 +01:00
Oleg Kalnichevski 701377e926 Eliminated DebugUtil class 2017-11-24 22:39:33 +01:00
Oleg Kalnichevski 450cb40afc Upgraded HttpClient version to 5.0-alpha4-SNAPSHOT 2017-11-24 09:38:15 +01:00
Oleg Kalnichevski ea22019220 HttpClient 5.0-alpha3 release 2017-11-19 12:54:30 +01:00
Karl Wright 42359353a2 HTTPCLIENT-1881: Allow truncated NTLM packets to work with this client. 2017-11-18 06:37:27 -05:00
Oleg Kalnichevski 235348eec6 Replaced socket and connect timeout request parameters with a single connection timeout request parameter. HTTP requests may be executed concurrently over a single HTTP/2 connection and no longer should overwrite connection socket timeout 2017-11-18 11:24:17 +01:00
Oleg Kalnichevski 47dfbfa221 Moved route local address configuration from RequestConfig to DefaultRoutePlanner 2017-11-17 18:23:53 +01:00
Oleg Kalnichevski f182b73e48 Added methods to passivate and activate managed connections. These methods are used to restore / store the original socket timeout value upon connection lease / release 2017-11-17 17:49:14 +01:00
Oleg Kalnichevski e3cd57a570 Fixed ALPN handshake failure in HTTP/2 integration tests 2017-11-14 19:27:25 +01:00
Oleg Kalnichevski 6228a73613 * HTTP/2 multiplexing HttpAsyncClient implementation
* Restructured integration tests to reduce test duplication
2017-11-13 22:30:12 +01:00
Oleg Kalnichevski 703b7968c5 Treat System#getProperty as a privileged action 2017-11-13 10:46:09 +01:00
Oleg Kalnichevski 3db1228242 Improved minimal HttpAsyncClient implementation; added minimal HTTP/2 multiplexing HttpAsyncClient implementation 2017-11-12 16:20:58 +01:00