Gary Gregory
712148ecc3
Remove redundant modifiers.
...
- All methods in a final class are already final.
- All members of an interface are public.
- All inner enums are static.
2020-11-24 09:22:25 -05:00
Gary Gregory
956b8194ff
Simplify if/else.
2020-11-24 09:22:25 -05:00
Koji Lin
bf1822c55e
Fix NPE when H2/Async client interceptors are added using first/last ( #268 )
2020-11-06 09:49:55 +01:00
Oleg Kalnichevski
f6333a5001
HTTPCLIENT-2126: `InternalAbstractHttpAsyncClient` incorrectly handles response messages with no enclosed entity
2020-11-06 09:40:23 +01:00
Artem Smotrakov
feb0377476
Fixed several findings from LGTM.com
...
- Fixed a few possible null dereferences
- Fixed a few possible out-of-bound array ops
- Added a couple of test cases
2020-10-30 15:51:50 +01:00
Gary Gregory
65c6c25070
[HTTPCLIENT-2124] NullPointerException in MinimalHttpClient.doExecute(HttpHost, ClassicHttpRequest, HttpContext) ( #261 )
2020-10-25 23:11:14 +01:00
Oleg Kalnichevski
1026a1e558
HTTPCLIENT-2122: async client to throw `HTTP/2 tunneling not supported` protocol exception in case of `force HTTP/2` version policy used along with request proxy routing
2020-10-22 20:27:28 +02:00
Oleg Kalnichevski
e73b33c18b
HTTPCLIENT-2123: H2AsyncClientBuilder incorrectly adds last request interceptors to the head of the interceptor list
2020-10-21 19:39:05 +02:00
Oleg Kalnichevski
a2df6f1e32
HTTPCLIENT-2119: added missing system properties to HttpClientBuilder javadocs
2020-10-17 12:17:15 +02:00
Varun Sivapalan
f9b46db6e0
Fix typo in enum
2020-10-06 10:17:11 +02:00
Oleg Kalnichevski
12a6579513
HTTPCLIENT-2118: Corrected PoolingHttpClientConnectionManager javadocs
2020-10-03 12:15:40 +02:00
Oleg Kalnichevski
918ac1535f
RFC 3986 conformance: corrected handling of path segments by `URIUtils#normalizeSyntax`; optimized path segment operations
2020-09-27 12:36:29 +02:00
Oleg Kalnichevski
6395fa7c79
RFC 3986 conformance: revised and optimized `URIUtils#extractHost`
2020-09-27 12:36:28 +02:00
Oleg Kalnichevski
0524eed4b9
Replaced deprecated URLEncodedUtils
2020-09-27 12:36:28 +02:00
Oleg Kalnichevski
ee26e23b31
Replaced deprecated TokenParser
2020-09-27 12:36:28 +02:00
Oleg Kalnichevski
ee5437c1f1
Upgraded HttpCore dependency to version 5.1-beta1
2020-09-27 12:36:28 +02:00
Michael Osipov
5000f34690
Use decimal numbers for endpoint/execution IDs
...
This closes #249
2020-09-27 12:33:50 +02:00
Oleg Kalnichevski
1c55aa1548
HTTPCLIENT-2106: Added charset parameter for DigestScheme
2020-09-27 12:33:50 +02:00
Carter Kozak
1a70490aac
HTTPCLIENT-2103: ManagedHttpClientConnectionFactory provides a fluent builder
2020-09-27 12:33:50 +02:00
Oleg Kalnichevski
ae6725056c
HTTPCLIENT-2116: Incorrect request message composition when routing requests via a proxy
2020-09-19 15:35:48 +02:00
滕杰1
20266db737
PoolingAsyncClientConnectionManager incorrectly emits Ping commands to HTTP/1.1 endpoints #255
2020-09-16 11:27:41 +02:00
Oleg Kalnichevski
feaa72e6e1
HTTPCLIENT-2115: HttpAsyncClientBuilder and H2AsyncClientBuilder fail to take `replaceExecInterceptor()` into account
2020-09-08 16:30:08 +02:00
Carter Kozak
45c45d53e0
HTTPCLIENT-2112: AbstractMultipartFormat respects ByteBuffer.arrayOffset ( #253 )
2020-08-28 08:05:32 -04:00
Carter Kozak
fa08f54077
HTTPCLIENT-2109: Fix RequestConfig.Builder#setConnectionKeepAlive javadoc ( #252 )
2020-08-23 11:50:21 -04:00
Michael Osipov
3360a69cd2
HTTPCLIENT-2078: Log debug message when no credentials for given auth scope are found
...
This closes #251
2020-08-18 21:31:25 +02:00
Carter Kozak
4f47c4abc0
HTTPCLIENT-2107: Threadsafe PoolingHttpClientConnectionManager field volatile access
2020-08-11 12:12:19 +02:00
Oleg Kalnichevski
f6da2bac6f
HTTPCLIENT-2105: async clients incorrectly handle redirects of requests with enclosed entity
2020-08-09 22:48:30 +02:00
Oleg Kalnichevski
ff6308a69f
HTTPCLIENT-2100: incorrect handling of EXTENDED mode by MultipartEntityBuilder
2020-07-16 15:43:30 +02:00
Carter Kozak
5bdcb242f0
HTTPCLIENT-2099, HTTPCLIENT-2091: SSLConnectionSocketFactory connect timeout fix ( #241 )
...
SSLConnectionSocketFactory no longer overrides the socket timeout
with the connect timeout when an unlimited socket timeout is
configured. This matches behavior of HTTPCLIENT-2091.
Note that in scenarios where SocketConfig sets an infinite timeout
and the RequestConfig sets a bounded timeout, this change results
in the connect-timeout no longer applying to the TLS handshake.
This behavior can be retained by setting the expected timeout in
the SocketConfig.
2020-07-11 17:18:42 +02:00
Gary Gregory
66f8ca1f09
BasicExpiresHandler is annotated as immutable but is not. ( #240 )
2020-07-10 08:57:24 -04:00
Carter Kozak
9866865357
HTTPCLIENT-2096: Migrate instance loggers to static fields
...
Note that this may change the origin of logging when classes
have been subclassed, as the logger origin will use the class
name that defined the logger where previously the subclass type
would be used. In scenarios where external libraries subclass
httpclient utilities this allows httpclient logging to maintain
the `org.apache.hc` prefix instead of inheriting arbitrary
subclass names.
Using some logging frameworks this may result in reduced churn
when httpclient components are created (new connections, for example)
because loggers are looked up once per class.
2020-07-09 11:34:48 +02:00
Carter Kozak
93e3d0f452
HTTPCLIENT-2097: Fix PoolingAsyncClientConnectionManager boxed primitive reference equality
2020-07-06 18:33:22 +02:00
slisaasquatch
ec82acc858
MultipartEntityBuilder#generateBoundary optimization ( #233 )
2020-07-04 09:49:07 +02:00
Carter Kozak
84bd290954
HTTPCLIENT-2095: Use slf4j interpolation instead of string concatenation where possible ( #232 )
2020-07-02 17:51:43 +02:00
Carter Kozak
517e5c8d94
HTTPCLIENT-2094: ConnectionManager validateAfterInactivity zero duration agreement
...
Both connection managers agree on the meaning of a zero-duration
validateAfterInactivity value. Previously the documentation for
both suggested that zero resulted in no validation, however
the classic client would validate prior to each request and
the async client would never validate.
This commit standardizes behavior on the classic client, which
is consistent with hc4.x, allowing zero to force validation prior
to every request.
2020-07-02 11:29:22 +02:00
Oleg Kalnichevski
da28440a58
RFC 7235 compliance, HTTPCLIENT-2086: fixed parsing of token68 based (base64-encoded) auth schemes.
2020-07-01 12:28:03 +02:00
Oleg Kalnichevski
445b61a01a
HTTPCLIENT-2091: Connect timeout is used instead of socket timeout after a tls upgrade
2020-06-30 12:24:25 +02:00
Oleg Kalnichevski
f268d192d4
HTTPCLIENT-2084: client builders incorrectly add message interceptors with LAST position to the head of the list
2020-06-17 12:44:04 +02:00
Carter Kozak
a22d889807
HTTPCLIENT-2083: Fix NPE when classic client interceptors are added
...
Previously HttpClientBuilder methods addExecInterceptorFirst and
addExecInterceptorLast resulted in NullPointerExceptions because
the execInterceptors list had not been initialized yet.
2020-06-12 10:24:45 +02:00
smashtakov
546351160b
fix typo log debug messages
2020-06-03 11:59:51 +02:00
Oleg Kalnichevski
9cfdd54c94
Bug fix: classic connection managers fail to take #isConsistent() flag into account when re-using persistent connections
2020-05-27 16:37:37 +02:00
vonahok
76a12fc4c6
HTTPCLIENT-2077: Authentication failure due to incorrect NTLM auth value check ( #223 )
2020-04-26 17:08:15 +02:00
Oleg Kalnichevski
e26d537658
HTTPCLIENT-2051: corrected handling of 303 redirects
2020-04-24 12:16:57 +02:00
Oleg Kalnichevski
177fc804e5
HTTPASYNC-160: HttpAsyncClient in INACTIVE or STOPPED state throws a IllegalStateException causing the current thread to terminate
2020-04-18 20:41:21 +02:00
heejeongkim
12ec6f15ea
HTTPCLIENT-2076: fix NPE in LaxExpiresHandler ( #222 )
2020-04-17 11:14:21 +02:00
Oleg Kalnichevski
3e484c0830
HTTPCLIENT-2074: disallow direct execution of CONNECT methods by standard client implementations
2020-04-08 14:58:38 +02:00
Oleg Kalnichevski
a93d5c0c1d
HTTPCLIENT-2073: (regression) WindowsNegotiateScheme incorrectly rejects empty NTLM challenge
2020-04-05 13:22:13 +02:00
Oleg Kalnichevski
9ea79c68c5
Minor tweaks to auth execution logging
2020-04-05 12:43:26 +02:00
Oleg Kalnichevski
92100e13a6
HTTPCLIENT-2069: RequestConfig#copy does not copy #responseTimeout
2020-03-31 14:00:01 +02:00
Oleg Kalnichevski
98daeabc05
HTTPCLIENT-2061: corrected sequence of request execution interceptors in classic HttpClient
2020-03-17 14:51:19 +01:00
slisaasquatch
ffa0530bb2
Fix NPE for null HttpContext in minimal async clients
2020-03-07 11:09:04 +01:00
slisaasquatch
99f7d2b710
Removed unnecessary BasicFuture wrapping
2020-03-07 11:07:05 +01:00
Oleg Kalnichevski
56ef8b8642
Use try-with-resources in examples
2020-02-24 12:07:55 +01:00
Oleg Kalnichevski
24b3f71a8f
Removed deprecated methods
2020-02-19 09:37:46 +01:00
Oleg Kalnichevski
53e172553d
HTTPCLIENT-2051: Change POST to GET for 301, 302 and 303 redirects. Other unsafe methods to be redirected as is.
2020-02-17 14:56:31 +01:00
Oleg Kalnichevski
42cae6999c
Use finite (3 minutes) connection keep-alive period by default
2020-02-17 09:12:39 +01:00
Oleg Kalnichevski
934a6d5e77
Removed dodgy work-around for resumed TLS sessions given that JDK-8212885 fix has been ported to Java 11 and released in Oracle JDK 11.0.3
2020-02-15 14:46:59 +01:00
Oleg Kalnichevski
5bcf6b61f3
Bug fix: custom SSL context is ignored
2020-02-14 10:37:03 +01:00
Ryan Schmitt
6559b60342
DefaultHttpRequestRetryStrategy: Allow zero retry interval
2020-01-30 11:21:35 -08:00
Gary Gregory
d1c4199db3
No need to use the type name of an input arg in the method name. ( #208 )
...
* No need to use the type name of an input arg in the method name.
* Do not use input type names in method names.
2020-01-29 19:20:05 -05:00
Oleg Kalnichevski
4401991d93
HTTPCLIENT-2047: fixed regression in DefaultHostnameVerifier causing rejection of certs with non-standard domains.
...
This reverts commit 87cc64fc
2020-01-29 09:44:39 +01:00
Oleg Kalnichevski
3575cff3dc
Bug fix: fixed handling of private domains by PublicSuffixMatcher
2020-01-29 09:43:19 +01:00
Gary Gregory
95dbbf099b
Now that ClassicHttpRequests is no longer an enum, we need to way to
...
generically build requests from method names. Update all factory classes
with matching APIs for Method and String method name inputs.
(#204 ), (#205 )
2020-01-28 23:11:56 +01:00
Michael Osipov
5a8a6d0fc8
Convert convenience builders form enums to final classes
...
Turn exhaustive enum builder pattern to a final class with builder
methods serving HTTP request objects.
This closes #202
2020-01-19 20:23:33 +01:00
Oleg Kalnichevski
303e435d79
Domain name normalization
2020-01-14 11:01:59 +01:00
Gary Gregory
071fa68a3c
Misc clean ups. ( #200 )
2020-01-09 11:45:04 -05:00
Michael Osipov
0812192f46
Rename CookieSpecs enum to StandardCookieSpec final class
...
Modeled after StandardCharsets, the new class indicates a non-exhaustive
list of standard cookie specifications by name supported by the HttpClient.
The previous enum suffered from two issues:
* it was exhaustive implying that no more cookie specifications can be supported
* its sole purpose was to contain an id for the declared cookie specification;
the enum values theirselves were never used directly
This also reuses the naming approach of HttpMultipartMode of symbolic names for
implementation behavior.
This closes #197
2020-01-08 17:29:09 +01:00
Ryan Schmitt
87cc64fc88
DefaultHostnameVerifier: Match DNS and CN names against ICANN domains
...
This change ensures that during hostname verification the public suffix
list is only used to prevent wildcard matching against entire TLDs (e.g.
`*.com`). Currently, private domains are also being matched against,
which is preventing reasonable wildcards (such as
`*.s3.eu-central-1.amazonaws.com`) from being respected.
2020-01-07 10:09:02 -08:00
Ryan Schmitt
3aec96d3db
Upgraded HttpCore to version 5.0-beta11
2020-01-07 15:41:18 +01:00
Michael Osipov
3730b03a99
Properly distinguish between AuthScheme and auth scheme name
...
Throughout the code the terms 'authScheme' and 'scheme' have been used
synonymously for an AuthScheme instance and a string-based auth scheme
name. To avoid confusion, fields, methods and variable have been adapted
to distinguish both properly. If necessary, Javadoc has been modified to
denote the nature of the input.
Also an auth scheme name is retained as-is, but normalized to lowercase
if comparsion is required.
This closes #193
2020-01-01 22:51:19 +01:00
Gary Gregory
634886ab61
[HTTPCLIENT-2046] Rename AuthSchemes enum to StandardAuthScheme final class
...
Modeled after StandardCharsets, the new class indicates a non-exhaustive
list of standard auth schemes by name supported by the HttpClient. The
previous enum suffered from two issues:
* it was exhaustive implying that no more auth schemes can be supported
* its sole purpose was to contain an id for the declared auth scheme;
the enum values theirselves were never used directly
This closes #196
2020-01-01 21:57:53 +01:00
Oleg Kalnichevski
54a341ea92
Simplified MIME multipart generation modes (legacy, strict and extended)
2020-01-01 13:47:53 +01:00
Oleg Kalnichevski
56463de35d
MIME code cleanup and class renaming (no functional changes)
2020-01-01 13:47:53 +01:00
Gary Gregory
3fd383f870
[HTTPCLIENT-2044] Don't create stateless/immutable factory objects
...
Decide later if some of these classes should have a private default
constructor.
This closes #195
2019-12-31 20:43:56 +01:00
Gary Gregory
eaa8c5f648
[HTTPCLIENT-2043] Rename classes documented as factories from *Provider to *Factory ( #194 )
...
This closes #194
2019-12-31 11:27:16 -05:00
Michael Osipov
f71ee38819
[HTTPCLIENT-2041] AuthenticationStrategy#select() assumes challanges key to be lowercase
...
Properly document that lowercase keys are required.
2019-12-27 12:32:13 +01:00
Michael Osipov
782d8e40a0
Use proper scheme names in text
2019-12-27 12:26:55 +01:00
Michael Osipov
167dbc7576
Make consistent use of AuthSchemes#id
...
This closes #189
2019-12-27 12:26:34 +01:00
Michael Osipov
2744c73471
Apply consistent id field names
...
As with HttpCore an entity should have a consistent id field, named 'id'
throughout the entire codebase.
This closes #188
2019-12-26 15:32:22 +01:00
Oleg Kalnichevski
a2ebb62881
HTTPCLIENT-2040: Copy headers from the original request to the redirect request
2019-12-25 09:29:11 +01:00
Oleg Kalnichevski
35a63d3426
Removed RFC 2965 specific requirements deprecated and superseded by RFC 6265
...
Partially reverts commit 379a8351
2019-12-20 10:24:20 +01:00
Michael Osipov
86b1a3b711
Use language-agnotic Locale.ROOT
2019-12-15 16:15:36 +01:00
Michael Osipov
667fc9e218
HTTPCLIENT-2037: AIMDBackoffManager should use TimeValue
2019-12-15 12:21:59 +01:00
Michael Osipov
8be681964c
Use paste tense for EntityBuilder#gzipCompressed
...
Both gzipCompressed and chunked denote a state of an entity where both
should use consistent tenses.
2019-12-15 11:36:32 +01:00
Michael Osipov
6c1e4676a1
Remove unused StringBuilder
2019-12-15 11:36:31 +01:00
Michael Osipov
41a7f5f718
Correct typo in class name 'MultihomeConnectionInitiator'
...
This class was erronously named 'MultuhomeConnectionInitiator'
2019-12-15 11:36:30 +01:00
Michael Osipov
8adc6c3277
Fix variable name typo
2019-12-15 11:36:29 +01:00
Michael Osipov
830263d279
Use TimeValue#sleep()
2019-12-15 11:28:11 +01:00
Michael Osipov
3d502c9ac4
Correct Javadoc
2019-12-15 11:28:11 +01:00
Michael Osipov
434d5e5046
Fix formatting
2019-12-15 11:28:11 +01:00
Michael Osipov
bca9a873a5
Use consistent variable names
2019-12-15 11:28:08 +01:00
Michael Osipov
52c6cf7037
HTTPCLIENT-2035: Remove HttpRequestRetryHandler in favor of HttpRequestRetryStrategy
...
This closes #183
2019-12-12 08:45:27 +01:00
Michael Osipov
e06af3d50b
HTTPCLIENT-2019: Remove ServiceUnavailableRetryStrategy in favor of HttpRequestRetryStrategy
...
This closes #182
2019-12-12 08:35:08 +01:00
Michael Osipov
6cff260eff
HTTPCLIENT-2031: Don't use plural names for enums
...
This closes #180
2019-12-10 10:50:28 +01:00
Michael Osipov
1d56c27e6d
HTTPCLIENT-2034: Introduce HttpRequestRetryStrategy
2019-12-10 08:43:14 +01:00
Oleg Kalnichevski
070f30fdc4
Fixed session i/o and wire logging in async clients
2019-12-05 15:30:18 +01:00
Oleg Kalnichevski
f3c418c50a
CloseableHttpAsyncClient to support explicit HttpHost execution parameter
2019-12-05 10:15:21 +01:00
Oleg Kalnichevski
d0541123c2
Fixed typo in method name (no functional changes)
2019-12-05 10:15:21 +01:00
Michael Osipov
742bc47a80
HTTPCLIENT-2020: DefaultBackoffStrategy should include TOO_MANY_REQUESTS (429) too
2019-11-27 13:16:44 +01:00
Niels Basjes
9552d5dd1d
HTTPCLIENT-2030: Fix PublicSuffixMatcher::getDomainRoot on invalid hostnames
2019-11-26 11:53:49 +01:00
Peter Frank
72af7cf5a5
HTTPCLIENT-2028: Now allowing 0 for validateAfterInactivity
...
The purpose of this change is to allow stale checking all the time, in previous versions of HttpClient this was accomplished by staleConnectionCheckEnabled=true which is now removed, this adds that idea back
2019-11-22 22:36:07 +01:00
chao chang
989ad0472d
update text in pool stats description
...
total kept alive -> total available
2019-11-10 15:58:52 +01:00
Oleg Kalnichevski
d62616bb29
Upgraded HttpCore dependency to version 5.0-beta10
2019-10-31 15:15:53 +01:00
Oleg Kalnichevski
7d523e9113
Handle TLS session upgrade failures
2019-10-04 14:45:56 +02:00
Ryan Schmitt
90c07f3490
Upgrade httpcore.version to 5.0-beta9
2019-10-04 14:42:38 +02:00
Ryan Schmitt
d655994950
Fix fallback PublicSuffixMatcher
2019-10-03 11:01:32 -07:00
Ryan Schmitt
35949e40a9
ClientTlsStrategyBuilder: Set default tlsDetailsFactory
2019-09-27 13:10:24 -07:00
Ryan Schmitt
a1adf79100
Enforce h2 TLS rules after negotiating TLS, not before
2019-09-27 13:09:40 -07:00
Gary Gregory
5d21af4849
Remove extra parens.
2019-09-04 20:57:07 -04:00
Oleg Kalnichevski
d5e1392840
HTTPCLIENT-2013: revised handling of connect exceptions; improved consistency in behavior of the classic and async clients; ConnectTimeoutException now extends SocketTimeoutException
2019-08-24 23:06:49 +02:00
Oleg Kalnichevski
8f6f6a5357
Improved handling of request cancellation (classic API)
2019-08-24 11:49:24 +02:00
Richard Hernandez
08b35c7f67
Move javadocs to Builder classes
2019-08-23 09:29:39 +02:00
Richard Hernandez
c9dc2c9281
Add RequestConfig builder javadocs
2019-08-22 10:06:18 +02:00
Simon Willnauer
1fc46800d8
Execute Socket#connect under doPrivileged
...
In order to allow users to run under a security manager that only grants
connect permission to the httpcore codebase the connect methods should
be executed in a doPriveledged block.
This is certainly not the only issue that users run into when they
install a SecurityManager with strict permissions but certainly the
most prominent and most likely one. Upstream components like the client
might also need to protect places accessing the proxy selector etc.
2019-08-18 11:34:05 +02:00
itonyli
90e34878a1
HTTPCLIENT-2009: Fxied StringIndexOutOfBoundsException in AuthSupport#extractFromAuthority
2019-08-11 14:57:27 +02:00
Linton Miller
00012c5786
Make Accept-Encoding header handling thread-safe
2019-07-27 23:45:21 +02:00
Oleg Kalnichevski
39cec46715
CloseableHttpClient and CloseableHttpAsyncClient to implement ModalClosable
2019-07-26 14:16:14 +02:00
Oleg Kalnichevski
d929456278
Removed deprecated classes
2019-07-26 13:04:21 +02:00
Kirill Usov
b717fde289
Information response (1xx) processing
2019-07-14 16:11:16 +02:00
Oleg Kalnichevski
669020ccac
Renamed Http2 to H2 (no functional changes)
2019-07-14 15:50:44 +02:00
Oleg Kalnichevski
8e42474a6c
Deprecated HttpClient functionality now provided out of HttpCore
2019-07-14 15:48:21 +02:00
Oleg Kalnichevski
b535a2812b
Upgraded HttpCore to version 5.0-beta8
2019-07-14 15:48:21 +02:00
Oleg Kalnichevski
a0aa438be8
Logging of multihome connect operations
2019-06-27 20:16:46 +02:00
jeromedemangel
19a87e0c77
HTTPCLIENT-1997: Return the last domain segment instead of normalized domain name from PublicSuffixMatcher#getDomainRoot in case there is no match
2019-06-27 17:26:30 +02:00
Neonailol
9e6287c88b
Fix typo in interceptor methods names
...
Signed-off-by: Neonailol <neonailol@gmail.com>
2019-06-26 12:14:48 +02:00
Oleg Kalnichevski
8603a61b55
HTTPCLIENT-1968: Preserve escaped PATHSAFE characters when normalizing URI path segments
2019-06-21 17:43:41 +02:00
Oleg Kalnichevski
07a9714f3b
Better event correlation in connection management logging
2019-06-18 15:03:06 +02:00
Oleg Kalnichevski
fdff6b6c0f
Misspelled main method name
2019-06-18 15:03:06 +02:00
Serkan Turgut
2267ef26b9
HTTPCLIENT-1992: Impossible to access trailer-headers available in chunked transfer-encoding
...
1. Implementing getTrailers() in ResponseEntityProxy which will return a
Supplier which propagates the output of ChunkedInputStream.getFooters(),
otherwise it returns a empty list.
2. Fixing a typo in ResponseEntityProxy.enhance() method name.
2019-06-14 11:38:53 +02:00
Oleg Kalnichevski
1afa421f6f
HTTPCLIENT-1991: incorrect handling of non-standard DNS entries by PublicSuffixMatcher
2019-06-05 11:07:04 +02:00
Adam Retter
d71d0f5a4c
Refactor to enable support for non-form based multipart requests
2019-06-03 15:30:02 +02:00
dowy
91f9278b9a
Escape DEL character when tracing
...
DEL characters should be converted to [0x7f] in Wire traces otherwise they are difficult to see in logs.
2019-05-30 11:47:40 +02:00
Jay Modi
7fbbe7c98f
HTTPCLIENT-1981: disallow TRACE requests with an enclosed entity
2019-04-11 12:17:14 +02:00
Oleg Kalnichevski
c44a10df75
[HTTPCORE-572] Move examples to the src/test folders for each module
2019-04-02 14:55:24 +02:00
Oleg Kalnichevski
07bd2e26fc
Changed route tracking of proxy to not default to false
2019-03-18 09:28:31 +01:00
Artem Smotrakov
a2a55f82e5
HTTPCLIENT-1969: Filter out weak cipher suites
2019-03-07 12:20:13 +01:00
Oleg Kalnichevski
285674e4ff
HttpClient should retry requests in case of ConnectionClosedException
2019-03-07 09:19:08 +01:00
Oleg Kalnichevski
d950fa6ed0
Bug fix: Simple response consumer to discard stored content when releasing resources
2019-03-07 09:19:08 +01:00
Oleg Kalnichevski
39023dfed1
Bug fix: main async request execution handlers to release teh associated response consumer upon exception
2019-03-07 09:19:08 +01:00
Oleg Kalnichevski
74ae768e0d
Fixed examples broken by HttpCore upgrade
2019-03-07 09:19:08 +01:00
Ryan Schmitt
f8653a011a
Upgrade HttpCore to version 5.0-beta7
2019-02-27 14:36:53 -08:00
Gary Gregory
1f06087fad
Use final.
2019-01-31 21:11:28 -05:00
Oleg Kalnichevski
123bd993cf
HTTPCLIENT-1960: URIBuilder incorrect handling of multiple leading slashes in path component
2019-01-14 09:36:14 +01:00
Oleg Kalnichevski
7824d98d0c
HTTPCLIENT-1958: PoolingHttpClientConnectionManager to throw ExecutionException in case of a lease operation cancellation instead of InterruptedException
...
(fixed previous commit)
2019-01-10 13:37:24 +01:00
Oleg Kalnichevski
50e7dd51e0
HTTPCLIENT-1958: PoolingHttpClientConnectionManager to throw ExecutionException in case of a lease operation cancellation instead of InterruptedException
2019-01-10 10:20:59 +01:00
吴雪山
df415c4f24
Shutdown executorService on AbstractHttpAsyncClientBase shutdown
2019-01-08 13:52:28 +08:00
Michael Osipov
812f18b453
[HTTPCLIENT-1957] Remove use of Proxy-Connection header
...
This closes #132
2019-01-02 17:19:42 +01:00
Michael Osipov
354ae3586e
[HTTPCLIENT-1952] Allow default User Agent to be disabled
...
This closes #128
2018-12-23 23:56:07 +01:00
Michael Osipov
4450221be7
Improve HttpResponseException#getMessage()
...
The #getMessage() now properly consists of the status code as such and the
optional reason phrase. Moreover, the pure reason phrase can be retrieved
via #getReasonPhrase.
2018-12-23 21:18:13 +01:00
Alex Panchenko
6275a39c00
replace empty HttpResponseException.message with statusCode
...
(cherry picked from commit 20dfff12c4
)
2018-12-19 17:37:11 +02:00
Oleg Kalnichevski
6b410fe0e7
Merge pull request #124 from eryksz/fixSelfAssigment
...
Fixed incorrect method parameter name in PoolingAsyncClientConnectionManagerBuilder
2018-12-16 18:20:27 +01:00
Jens Borgland
eac6c062b5
Better handling of http(s).proxyUser and http(s).proxyPassword
2018-12-16 18:14:07 +01:00
Eryk Szymanski
0c2b8e8a49
Fix PoolingAsyncClientConnectionManagerBuilder
...
Wrong argument name in setConnPoolPolicy results with self assignment of variable
2018-12-14 16:16:02 +01:00
Oleg Kalnichevski
836e953da0
Added optional dependency on conscrypt-openjdk-uber 1.4.1; support for advanced TLS functions (such as ALPN extension) on Java 1.7 and Java 1.8 through Conscrypt TLS library
2018-12-10 13:18:41 +01:00
Oleg Kalnichevski
b452006756
Upgraded HttpCore to version 5.0-beta6
2018-12-04 15:49:56 +01:00
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
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
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
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
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
Oleg Kalnichevski
79c153409b
Async exec runtime and connection management improvements
2017-11-12 16:20:58 +01:00
Oleg Kalnichevski
d992bec7ad
Fixed handling of task cancelation
2017-11-12 16:20:27 +01:00
Oleg Kalnichevski
1577356f37
Fixed handling of request configuration by async clients
2017-11-09 11:26:51 +01:00
Oleg Kalnichevski
7c0a1127be
Multi-home DNS aware implementation of ConnectionInitiator; ConnectTimeoutException and HttpHostConnectException to use NamedEndpoint instead of HttpHost
2017-11-08 15:01:18 +01:00
Oleg Kalnichevski
2ad0370517
Revised handling of non-repeatable requests
2017-11-07 09:42:07 +01:00
Oleg Kalnichevski
45f1a2a740
Improved internal client exchange handling code
2017-11-05 13:57:34 +01:00
Oleg Kalnichevski
389272de3a
Upgraded HttpCore dependency to version 5.0-beta1
2017-11-05 13:57:34 +01:00
Oleg Kalnichevski
d88e32f952
Annotation for cacheable auth schemes
2017-11-04 11:10:22 +01:00
Oleg Kalnichevski
87865c5cd5
Fixed style check violations (no functional changes)
2017-11-01 22:30:52 +01:00
Oleg Kalnichevski
a403075948
HTTPCLIENT-1873: Config option for Kerberos delegation
2017-10-23 11:36:14 +02:00
Oleg Kalnichevski
d054442cdf
Compatibility with Java 9 (tested with Oracle JDK 9.0.1); updated SSL/TLS examples
2017-10-22 17:15:50 +02:00
Oleg Kalnichevski
572a370f4b
Added #toString()
2017-10-22 17:13:55 +02:00
Oleg Kalnichevski
09aee8c422
Removed #finalize() methods deprecated in Java 9
2017-10-22 14:33:01 +02:00
Oleg Kalnichevski
9368c5f5c8
HTTPCLIENT-1855: disabled caching of DIGEST auth scheme instances due to unreliability of nonce counter when the auth cache is shared by multiple sessions
2017-10-20 12:04:26 +02:00
Oleg Kalnichevski
45f1657907
HTTPCLIENT-1827: Builder for CachingHttpAsyncClient instances with full support for streamed HTTP exchanges
2017-10-16 22:59:26 +02:00
Oleg Kalnichevski
20f4290d01
Removed dependency on classic (blocking) I/O APIs from HttpCache
2017-10-02 17:34:40 +02:00
Oleg Kalnichevski
e2a464084c
Removed deprecated code
2017-10-01 11:42:51 +02:00
Oleg Kalnichevski
f959d44ec7
Deprecated Content-Transfer-Encoding field in MIME body parts per RFC 7578, section 4.7
2017-09-30 23:51:52 +02:00
Ioannis Sermetziadis
a424709d89
HTTPCLIENT-293 Implemented the percent encoding of the filename parameter of the Content-Disposition header based on RFC7578 sections 2 and 4.2. In the new MultipartForm implementation I included a PercentCodec that performs encoding/decoding to/from the percent encoding as described in RFC7578 and RFC3986.
2017-09-30 23:51:43 +02:00
Ioannis Sermetziadis
9560aef476
HTTPCLIENT-293 Refactored code in order to support multipart header field parameters in the data model and postpone the formatting and encoding of the parameters until the moment written into a stream, which is essential in order to avoid multiple encodings of the same value.
2017-09-30 23:51:22 +02:00
Oleg Kalnichevski
9ac5808bdb
Added MessageCopier and implementations for HttpRequest and ClassicHttpRequest messages; removed message copy methods from ExecSupport
2017-09-30 23:00:45 +02:00
Oleg Kalnichevski
e8972624ac
Redesign of SimpleHttpRequest / SimpleHttpResponse APIs
2017-09-29 17:02:41 +02:00
Andy Klimczak
26a253fcb4
Fix typo in HttpClients.java Javadoc closes #83 .
2017-09-06 14:55:34 -06:00
Oleg Kalnichevski
d2b3385ba2
Redesign of classic and asynchronous connection manager APIs
2017-09-06 17:44:36 +02:00
Oleg Kalnichevski
6d17126cbf
Moved classes and renamed packages (no functional changes)
2017-09-02 17:27:30 +02:00
Oleg Kalnichevski
dcc09e92e0
Logging improvements
2017-09-01 20:30:10 +02:00
Oleg Kalnichevski
b58e7d46d7
Upgraded HttpCore to version 5.0-alpha4
2017-09-01 20:29:58 +02:00
Carter Kozak
272ea1fa83
Fixed NPE PoolingAsyncClientConnectionManager
...
PoolingAsyncClientConnectionManager.validateAfterInactivity causes
an NPE when PoolEntries are initially created with no Connection.
Added logic to avoid checking the connection on every pool
checkout similar to the blocking pool.
Added an connection.isOpen check to http1.x connections leased
from the pool, although I'm unsure if it's at all effective.
Closes PR #82
2017-08-09 20:28:18 +02:00
Carter Kozak
a10967a427
BasicCookieStore no longer synchronizes on reads
...
BasicCookieStore uses a ReentrantReadWriteLock to avoid
synchronization on getCookies/toString while maintaining
thread safety.
Closes PR #81
2017-08-08 23:07:52 +02:00
Tomas Celaya
9efcba8730
[HTTPCLIENT-1865] DefaultServiceUnavailableRetryStrategy does not
...
respect HttpEntity#isRepeatable.
2017-08-01 19:25:17 +02:00
Gary Gregory
f2146cab62
[HTTPCLIENT-1858] Clone some code from Log4j 2 to cache a StringBuilder
...
in a ThreadLocal. Update to use the StringBuilder's capacity instead of
its length to measure upper bound.
2017-08-01 19:12:15 +02:00
Jay Modi
fe6b90a8c6
[HTTPASYNC-124] Add doPrivileged blocks to async client and connection
...
manager builders.
2017-08-01 19:12:02 +02:00
Oleg Kalnichevski
643ea6c3e0
Fixed javadocs
2017-07-16 23:01:36 +02:00
Gary Gregory
527dce78a7
[HTTPCLIENT-1858] Clone some code from Log4j 2 to cache a StringBuilder in a ThreadLocal.
2017-07-16 22:42:16 +02:00
Karl Wright
55fe0fb139
HTTPCLIENT-1859: Encode header name, filename appropriately
2017-06-22 09:51:27 -04:00
Oleg Kalnichevski
1cba813bf8
CredSSP scheme to throw SSLInitializationException in case of SSL context initialization failure instead of untyped RuntimeException
2017-05-29 20:21:57 +02:00
Oleg Kalnichevski
a034a34db2
Line ending normalization
2017-05-29 20:08:10 +02:00
Oleg Kalnichevski
4f4576ec94
Use SSLInitializationException from HttpCore
2017-05-29 19:21:04 +02:00
Pavol Loffay
4bd79fb3dd
Allow to add exec interceptor as the first and the last
...
Closes PR #76
2017-05-18 09:27:58 +02:00
Gary D. Gregory
ace93bbbed
No need for two (2) license headers.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794478 13f79535-47bb-0310-9956-ffa450edef68
2017-05-08 22:55:38 +00:00
Gary D. Gregory
9050d81207
Javadoc: Close tag.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794414 13f79535-47bb-0310-9956-ffa450edef68
2017-05-08 17:11:27 +00:00
Gary D. Gregory
07c74cd8b1
Better parameter name.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794412 13f79535-47bb-0310-9956-ffa450edef68
2017-05-08 16:51:27 +00:00
Gary D. Gregory
4fa296bbfd
Sort imports.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794411 13f79535-47bb-0310-9956-ffa450edef68
2017-05-08 16:51:12 +00:00
Gary D. Gregory
07aea2cbb9
[HTTPCLIENT-1845]: Extract InputStreamFactory classes out of GzipDecompressingEntity and DeflateDecompressingEntity for reuse and to create less garbage.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794410 13f79535-47bb-0310-9956-ffa450edef68
2017-05-08 16:50:54 +00:00
Oleg Kalnichevski
c5257a771d
Javadoc fix
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794203 13f79535-47bb-0310-9956-ffa450edef68
2017-05-07 13:36:35 +00:00
Oleg Kalnichevski
c7a52d51c0
Disable HTTP tunneling support until the problem with delineation of 200 status message in response to CONNECT method has been resolved in HttpCore
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794172 13f79535-47bb-0310-9956-ffa450edef68
2017-05-06 18:30:44 +00:00
Oleg Kalnichevski
922a9ac545
Fixed processing of HTTP protocol version dependent request headers
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794171 13f79535-47bb-0310-9956-ffa450edef68
2017-05-06 18:30:37 +00:00
Oleg Kalnichevski
5ae1cff8a2
Implemented connection routing for the async request exec chain
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794170 13f79535-47bb-0310-9956-ffa450edef68
2017-05-06 18:30:25 +00:00
Oleg Kalnichevski
ecf4e93842
Classic exec runtime to establish connection automatically if the connection endpoint is disconnected
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1794169 13f79535-47bb-0310-9956-ffa450edef68
2017-05-06 18:30:02 +00:00
Oleg Kalnichevski
196ee3363e
HTTPCLIENT-1826: HttpAsyncClientBuilder to accept ThreadFactory attribute
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793762 13f79535-47bb-0310-9956-ffa450edef68
2017-05-04 09:42:53 +00:00
Oleg Kalnichevski
28058b8f85
Upgraded Mockito dependency to version 2.7
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793693 13f79535-47bb-0310-9956-ffa450edef68
2017-05-03 18:31:58 +00:00
Oleg Kalnichevski
e8efaea53f
Removed remaining JCL usage in the caching module. Cleaned up POM.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793690 13f79535-47bb-0310-9956-ffa450edef68
2017-05-03 18:31:30 +00:00
Oleg Kalnichevski
d5039137ca
Improved protocol handling in the async request execution chain; implemented cookie processing and authentication handling
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793567 13f79535-47bb-0310-9956-ffa450edef68
2017-05-02 18:22:59 +00:00
Oleg Kalnichevski
d43ee7177b
Refactored connection routing and protocol execution code in the classic exec chain
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793325 13f79535-47bb-0310-9956-ffa450edef68
2017-05-01 13:06:48 +00:00
Oleg Kalnichevski
bde89fee57
Fixed automatic content compression in classic exec chain
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793324 13f79535-47bb-0310-9956-ffa450edef68
2017-05-01 13:04:26 +00:00
Oleg Kalnichevski
b0cdc58b01
Initial implementation of the async request execution chain
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793320 13f79535-47bb-0310-9956-ffa450edef68
2017-05-01 12:39:16 +00:00
Oleg Kalnichevski
da5797f470
Moved classic HttpClient and HC fluent integration tests to httpclient-testing module
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793319 13f79535-47bb-0310-9956-ffa450edef68
2017-05-01 12:38:41 +00:00
Oleg Kalnichevski
25c6afed7c
Initial redesign of the classic request execution chain
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793308 13f79535-47bb-0310-9956-ffa450edef68
2017-05-01 11:11:09 +00:00
Oleg Kalnichevski
04594b97a9
Upgraded HttpCore to version 5.0-alpha3; fixed HttpCore API usage
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1793305 13f79535-47bb-0310-9956-ffa450edef68
2017-05-01 10:47:09 +00:00
Gary D. Gregory
e1c5e5922a
[HTTPCLIENT-1836] DefaultHostnameVerifier#getSubjectAltNames(X509Certificate) throws java.lang.ClassCastException.
...
Contributed by Gary Gregory <ggregory at apache.org>, Ilian Iliev <ilian_iliev at yahoo.com>
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1789189 13f79535-47bb-0310-9956-ffa450edef68
2017-03-28 18:53:43 +00:00
Gary D. Gregory
ab46a44871
Format tweak.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1789172 13f79535-47bb-0310-9956-ffa450edef68
2017-03-28 15:58:28 +00:00
Gary D. Gregory
192acfde4d
Statement unnecessarily nested within else clause.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1789170 13f79535-47bb-0310-9956-ffa450edef68
2017-03-28 15:54:38 +00:00
Gary D. Gregory
b1f8cd58f6
Use final.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1788709 13f79535-47bb-0310-9956-ffa450edef68
2017-03-26 02:43:03 +00:00
Gary D. Gregory
857bcfb04d
Add missing '@Override' annotations.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1788708 13f79535-47bb-0310-9956-ffa450edef68
2017-03-26 02:35:13 +00:00
Oleg Kalnichevski
0aff0348ad
HTTPCLIENT-1835: evictExpiredConnections no longer causes the evictIdleConnections behaviour to be enabled when evictIdleConnections is not explicitly enabled
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1788069 13f79535-47bb-0310-9956-ffa450edef68
2017-03-22 09:03:54 +00:00
Oleg Kalnichevski
f8eb3bf235
HTTPCLIENT-1830: await termination of the IdleConnectionEvictor when it is shut down
...
Contributed by Liam Williams <liam.williams at zoho.com>
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1787982 13f79535-47bb-0310-9956-ffa450edef68
2017-03-21 14:47:51 +00:00
Oleg Kalnichevski
db97c706d4
HTTPCLIENT-1832: Added content length parameter to InputStreamBody constructor
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1787772 13f79535-47bb-0310-9956-ffa450edef68
2017-03-20 13:48:18 +00:00
Karl Wright
d07ee6fbc7
HTTPCLIENT-1834: Fix up the conflicts with patch HTTPCLIENT-1662.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1787727 13f79535-47bb-0310-9956-ffa450edef68
2017-03-20 11:58:46 +00:00
Oleg Kalnichevski
248cf5c96d
HTTPCLIENT-1834: NTLN auth refactoring; support for MS CredSsp auth
...
Contributed by Radovan Semancik <radovan.semancik at evolveum.com> and Karl Wright <kwright at apache.org>
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1787707 13f79535-47bb-0310-9956-ffa450edef68
2017-03-20 10:11:56 +00:00
Oleg Kalnichevski
e6844f5d33
Fix for HTTPCLIENT-1833
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1787549 13f79535-47bb-0310-9956-ffa450edef68
2017-03-18 12:07:13 +00:00
Oleg Kalnichevski
8a54c1b8f7
AuthChallenge to include challenge type (target or proxy)
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1787548 13f79535-47bb-0310-9956-ffa450edef68
2017-03-18 12:06:32 +00:00
Oleg Kalnichevski
26cfea101f
Client side APIs for HTTP/2 server push handling
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1784909 13f79535-47bb-0310-9956-ffa450edef68
2017-03-01 10:47:22 +00:00
Oleg Kalnichevski
191183bf75
Moved sync HTTP method classes
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1784141 13f79535-47bb-0310-9956-ffa450edef68
2017-02-23 14:35:01 +00:00
Oleg Kalnichevski
d1c104a89e
New non-blocking HttpAsyncClient APIs
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1784140 13f79535-47bb-0310-9956-ffa450edef68
2017-02-23 14:33:47 +00:00
Oleg Kalnichevski
113d40ef39
New non-blocking connection management APIs
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1784139 13f79535-47bb-0310-9956-ffa450edef68
2017-02-23 14:32:43 +00:00
Oleg Kalnichevski
564537aebc
Redesign of classic (blocking) connection management APIs
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1784138 13f79535-47bb-0310-9956-ffa450edef68
2017-02-23 14:32:24 +00:00
Gary D. Gregory
7637761238
Checkstyle fixes.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1784071 13f79535-47bb-0310-9956-ffa450edef68
2017-02-22 22:37:39 +00:00
Gary D. Gregory
fcbfd1d914
Tab police and use // @formatter:[off|on]
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1783963 13f79535-47bb-0310-9956-ffa450edef68
2017-02-22 01:29:28 +00:00
Gary D. Gregory
f77bdff541
Tab police.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1783844 13f79535-47bb-0310-9956-ffa450edef68
2017-02-21 08:45:54 +00:00
Gary D. Gregory
a9df4780c1
Use try-with-resources to try and avoid any leaks.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1783811 13f79535-47bb-0310-9956-ffa450edef68
2017-02-20 22:56:52 +00:00
Gary D. Gregory
97f1e35a00
[HTTPCLIENT-1817] Add a "Trust All" TrustStrategy implementation.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1783809 13f79535-47bb-0310-9956-ffa450edef68
2017-02-20 22:50:39 +00:00
Oleg Kalnichevski
4d0d23dc01
Integration and compatibility tests
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1780849 13f79535-47bb-0310-9956-ffa450edef68
2017-01-29 19:22:20 +00:00
Oleg Kalnichevski
cea5b2697b
HTTPCLIENT-1802: Do not attempt to match SSL host to subject CN if subject alternative name of any type are given
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1779669 13f79535-47bb-0310-9956-ffa450edef68
2017-01-20 19:21:10 +00:00
Oleg Kalnichevski
4d180773db
HTTPCLIENT-1788: RFC 6265 policy must not reject cookies with paths that are no prefix of the uri path
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1778460 13f79535-47bb-0310-9956-ffa450edef68
2017-01-12 19:21:03 +00:00
Oleg Kalnichevski
09bee18bd6
Use extended HostnameVerifier interface that propagates detailed exception in case of hostname verification failure when available
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1778412 13f79535-47bb-0310-9956-ffa450edef68
2017-01-12 10:09:04 +00:00
Oleg Kalnichevski
903c701ef6
HTTPCLIENT-1792: SSLConnectionSocketFactory to throw SSLPeerUnverifiedException with a better error message when hostname verification fails
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1778411 13f79535-47bb-0310-9956-ffa450edef68
2017-01-12 10:08:41 +00:00
Oleg Kalnichevski
aaf638b1d5
HTTPCLIENT-1800: wrap redirect around retry in execChain
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1777769 13f79535-47bb-0310-9956-ffa450edef68
2017-01-07 11:39:15 +00:00
Oleg Kalnichevski
1da6fc21ed
Moved connection pool construction logic out of HttpClientBuilder into a separate builder class
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1777768 13f79535-47bb-0310-9956-ffa450edef68
2017-01-07 11:38:46 +00:00
Oleg Kalnichevski
e48091da3d
Upgraded HttpCore to version 5.0-alpha2; Upgraded to the latest 5.0 APIs
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1776187 13f79535-47bb-0310-9956-ffa450edef68
2016-12-27 19:48:07 +00:00
Gary D. Gregory
afb3908d2e
Allow for checkstyle oddity.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1767398 13f79535-47bb-0310-9956-ffa450edef68
2016-11-01 01:21:33 +00:00
Gary D. Gregory
fd412e7bf1
[HTTPCLIENT-1786] Port from Apache Commons Logging to Apache Log4j 2.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1767391 13f79535-47bb-0310-9956-ffa450edef68
2016-10-31 23:24:37 +00:00
Oleg Kalnichevski
28a6d5c481
HTTPCLIENT-1767: Null pointer dereference in EofSensorInputStream and ResponseEntityProxy
...
EofSensorInputStream is generating NullPointerExceptions in some rare situations. This commit fixes that behaviour for the check methods by dereferencing the instance variable to a final local variable to ensure that if it is not null at the null guard, that it will be not null after that point also to successfully close/abort the stream
In some rare cases, null parameters are sent to ReponseEntityProxy methods, this adds checks on those to ensure that the connections are still released, but the null variable is not dereferenced.
Contributed by Peter Ansell <p_ansell@yahoo.com>
Conflicts:
httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ResponseEntityProxy.java
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1760585 13f79535-47bb-0310-9956-ffa450edef68
2016-09-13 18:32:38 +00:00
Oleg Kalnichevski
f779a4b65d
Support changing system default ProxySelector
...
Contributed by Robin Stevens <stevensro at gmail.com>
The `ProxySelectorRoutePlanner` class which got deprecated in favor of the `SystemDefaultRoutePlanner` could deal with:
- `null` as default `ProxySelector`
- a change in the default `ProxySelector`
This change ports that behavior to the `SystemDefaultRoutePlanner`.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1758106 13f79535-47bb-0310-9956-ffa450edef68
2016-08-28 13:02:35 +00:00
Gary D. Gregory
1aff9e9220
Use final.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1757447 13f79535-47bb-0310-9956-ffa450edef68
2016-08-23 22:27:14 +00:00
Oleg Kalnichevski
4046b8fdcc
HTTPCLIENT-1748: Improved compatibility with system authentication API in applets
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1756293 13f79535-47bb-0310-9956-ffa450edef68
2016-08-13 19:55:43 +00:00
Oleg Kalnichevski
1b9c13afa9
HTTPCLIENT-1760: added protected methods to enumerate leased and available connections to PoolingHttpClientConnectionManager
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1756278 13f79535-47bb-0310-9956-ffa450edef68
2016-08-13 15:30:27 +00:00
Oleg Kalnichevski
8081dbdc02
HTTPCLIENT-1746: improved argument validation in URLEncodedUtils
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1746751 13f79535-47bb-0310-9956-ffa450edef68
2016-06-03 19:37:33 +00:00
Oleg Kalnichevski
da589ff03a
HTTPCLIENT-1736: do not request cred delegation by default when using Kerberos auth
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1746746 13f79535-47bb-0310-9956-ffa450edef68
2016-06-03 19:19:39 +00:00
Oleg Kalnichevski
da8e60b2a4
Cleaned up comments
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1745907 13f79535-47bb-0310-9956-ffa450edef68
2016-05-28 17:00:08 +00:00
Oleg Kalnichevski
facf463c44
HTTPCLIENT-1744: normalize hostname and certificate CN when matching to CN
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1745906 13f79535-47bb-0310-9956-ffa450edef68
2016-05-28 16:59:23 +00:00
Oleg Kalnichevski
e6c051ee1b
HTTPCLIENT-1732: SystemDefaultCredentialsProvider to take http.proxyHost and http.proxyPort system properties into account
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1737484 13f79535-47bb-0310-9956-ffa450edef68
2016-04-02 10:26:11 +00:00
Oleg Kalnichevski
66c5016394
HTTPCLIENT-1730: added #setValidateAfterInactivity to HttpClientBuilder
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1736237 13f79535-47bb-0310-9956-ffa450edef68
2016-03-22 19:28:09 +00:00