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
Oleg Kalnichevski
afa8f5ecd1
Upgraded HttpClient version to 5.0-beta8-SNAPSHOT
2020-01-26 12:42:54 +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
25748c48b2
Upgraded HttpClient version to 5.0-beta7-SNAPSHOT
2019-10-09 10:30:55 +02: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
Oleg Kalnichevski
a0febeb6f1
Upgraded HttpClient version to 5.0-beta6-SNAPSHOT
2019-07-21 11:22:12 +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
8fdc2ec1b8
Fixed copying of examples for project website
2019-04-06 10:59:23 +02:00
Oleg Kalnichevski
72d9b378cd
Upgraded HttpClient version to 5.0-beta5-SNAPSHOT
2019-04-06 10:36:42 +02:00
Oleg Kalnichevski
3fac3a4435
HttpClient 5.0-beta4 release
2019-04-03 10:41:53 +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