List of user-visible changes that have gone into each release
- Add trust-manager and key-managers support to the client - dakrone#469
- Add support for reusable http clients, returning the client in
:http-client
and allowing one to be specified (with the same setting) - dakrone#441 - Cancelling the
Future
returned from an async http request now also aborts the HttpRequest object - Async connection managers no longer put the connection manager in an illegal ACTIVE state #443
- Added the
:cookie-spec
and:cookie-policy-registry
options for specifying a custom cookie spec for parsing cookies. Since clj-http doesn’t rely on Apache’s cookies handling, this is for advanced users who wish to add their own cookie validation, or use Apache’s handling instead of clj-http’s. It also allows a user who wants to registry a custom spec to reuse the spec without creating it for every request. Semi-related to dakrone#444 - Added support for caching HTTP responses from a server. This can dramatically speed up requests to
the same URL. Filling and invalidating the cache is handled by Apache’s httpclient-cache project,
with configuration exposed under the
:cache
and:cache-config
parameters in the option map. dakrone#445
- Reintroduce the
:save-request
and:debug-body
options Wrap nested querystring params before form params, fixing dakrone#427Reverted, see further below- Merged dakrone#426 to allow an empty SSLGenericSocketFactory context
- Merged dakrone#424 to add :mime-subtype request parameter to override mime subtype
- create-multipart-entity with three arguments arity lets the selection of
HttpMultipartMode
- new request key :http-multipart-mode which is HttpMultipartMode/STRICT by default
- Added
:ignore-nested-query-string
,:flatten-nested-form-params
, and:flatten-nested-keys
options for finer-grained control over which nested parts of the request are flattened. Fixes dakrone#427 - Added
:http-builder-fns
and:async-http-builder-fns
to support arbitrary customizations to theHttpClientBuilder
andHttpAsyncClientBuilder
- Fixed an issue where redirects to a bad location could cause the async client to hang - dakrone#435
client/parse-url
now includes the original URL in the:url
keycore/get-cookie-policy
is now a multimethod. This allows users to customize the return of their own cookie validation method.- Empty responses with coercion no longer throw exceptions when processing empty gzipped response streams. Fixes dakrone#257
This list contains all the changes since 3.0.0.
Added:
- HttpRequestInterceptor support 155bd23
- protocol-version and reason-phrase f430517
- support for async HTTP requests (like Ring) 44d10ec
- support for different multi-param encoding (:repeating, :array, :indexed) cddeb3e
- Add unparse function aec7dd1
- Added :redirect-strategy :graceful
- Allow RequestConfig and HttpClientContext to be injected feb3c48
Removed:
- :save-request
Changed:
- re-written middleware using apache http client 4.5
- Fix retry-handler to be added in correct place a2c31f5
- POST Mutipart: Use charset “UTF-8” instead of “ASCII” as default charset to support internationalization 983508f
- merged dakrone#274 to update Potemkin so it supports Clojure 1.7.0 correctly
- merged dakrone#264 to add support for coercion of urlencoded data
- make ALL optional dependencies opt-in, rather than opt-out
- bumped dependencies for transit-clj and tools.reader
- merge dakrone#263 to only decode body headers when the content-type is either missing or starts with “text”
- merge dakrone#262 to prevent NullPointerException when decoding body headers with HEAD requests
- merge dakrone#261 to decode user info from URL if provided
- merge dakrone#260 to upgrade tools.reader for better cljs compatibility
- add
304
(not modified) to the list of unexceptional responses, see #259
- merged dakrone#255 to add support for Windows NTLM authentication
- Add the `with-additional-middleware` macro
- Add the ability to specify form-param-encoding for encoding form parameters
- merged dakrone#248 to removed deprecated cookie APIs from cookie.clj
- merged dakrone#245 to do some cleanups and small import fixes
- merged dakrone#240 to implement meta/with-meta for the header map
- merged dakrone#242 fixing a connection leak when http-entity is null
- bumped all dependencies to latest versions
- merged dakrone#235 to fix wrap-nested-params
- merged dakrone#236 to clean up multipart constructors and reflection
- merged dakrone#234 to allow scheme customization in default connection
- merged dakrone#232 to fix
empty
on header-map - fix :json-strict-string-keys
- exclude clojure.core/update from client ns
- added
:decode-cookies
option to allow skipping cookie header decode (if the server sends incorrectly formatted cookies for some reason)
- merged dakrone#215 to add transit support
- drop support for clojure 1.4.0, start testing 1.7.0
- merged dakrone#213 to allow passing in an already existing keystore, not just a path
- merged dakrone#211 to detect charset encoding for url-encode
- merged dakrone#206 to handle null passwords for keystores
- merged dakrone#201 to make :auto content type parsing dispatch pluggable
- Bump crouton and tools.reader dependencies
- Merged dakrone#199 to add support for form parameters in the PATCH method
- Bump dependencies and fix tests for 1.6.0 compatibility
- automatically coerce header values to strings
- fix issue where :ignore-unknown-host wasn’t using the
opt
function correctly
- Bumped httpcore to 4.3.2
- Merged dakrone#190 to support file multiparts with content, mime-type and name
- Unify all boolean operators so {:debug true} and {:debug? true} are treated the same
- Fix :trace-redirects being [nil] when :uri is used
- Merged dakrone#184 containing a bevy of
changes:
- initial header-map implementation, allowing headers to be used case insensitively
- drop support for clojure 1.2 and 1.3
- add support for clojure 1.6
- change all :use statements to :require statements
- use better docstring support for defs
- remove sleep calls in tests
- make Jetty quieter while running tests
- newer type hinting syntax
- Make :decode-body-headers more reliable by using a byte array instead of slurp.
- Merged dakrone#181 to fix some tests
- Merged dakrone#178 to eliminate test reflection
- Merged dakrone#177 to update apache HTTP deps
- Merged dakrone#175 to add {:as :json-strict} for output coercion
- Added {:as :json-strict-string-keys} output coercion
- bump dependencies to their latest
- Merged dakrone#172 to update .gitignore file and clean up whitespace for new clojure-mode
- Merged dakrone#171 to support SOCKS proxies
- branched master to create 2.x
- start major rewrite on master branch for non-deprecated Apache usage
- merged dakrone#274 to update Potemkin so it supports Clojure 1.7.0 correctly
- merged dakrone#264 to add support for coercion of urlencoded data
- make ALL optional dependencies opt-in, rather than opt-out
- bumped dependencies for transit-clj and tools.reader
- merge dakrone#263 to only decode body headers when the content-type is either missing or starts with “text”
- merge dakrone#262 to prevent NullPointerException when decoding body headers with HEAD requests
- merge dakrone#261 to decode user info from URL if provided
- merge dakrone#260 to upgrade tools.reader for better cljs compatibility
- add
304
(not modified) to the list of unexceptional responses, see #259
- merged dakrone#255 to add support for Windows NTLM authentication
- Add the `with-additional-middleware` macro
- Add the ability to specify form-param-encoding for encoding form parameters
- merged dakrone#248 to removed deprecated cookie APIs from cookie.clj
- merged dakrone#245 to do some cleanups and small import fixes
- merged dakrone#240 to implement meta/with-meta for the header map
- merged dakrone#242 fixing a connection leak when http-entity is null
- bumped all dependencies to latest versions
- merged dakrone#235 to fix wrap-nested-params
- merged dakrone#236 to clean up multipart constructors and reflection
- merged dakrone#234 to allow scheme customization in default connection
- merged dakrone#232 to fix
empty
on header-map
- fix :json-strict-string-keys
- exclude clojure.core/update from client ns
- added
:decode-cookies
option to allow skipping cookie header decode (if the server sends incorrectly formatted cookies for some reason)
- merged dakrone#215 to add transit support
- drop support for clojure 1.4.0, start testing 1.7.0
- merged dakrone#213 to allow passing in an already existing keystore, not just a path
- merged dakrone#211 to detect charset encoding for url-encode
- merged dakrone#206 to handle null passwords for keystores
- merged dakrone#201 to make :auto content type parsing dispatch pluggable
- Bump crouton and tools.reader dependencies
- Merged dakrone#199 to add support for form parameters in the PATCH method
- Bump dependencies and fix tests for 1.6.0 compatibility
- automatically coerce header values to strings
- fix issue where :ignore-unknown-host wasn’t using the
opt
function correctly
- Bumped httpcore to 4.3.2
- Merged dakrone#190 to support file multiparts with content, mime-type and name
- Unify all boolean operators so {:debug true} and {:debug? true} are treated the same
- Fix :trace-redirects being [nil] when :uri is used
- Merged dakrone#184 containing a bevy of
changes:
- initial header-map implementation, allowing headers to be used case insensitively
- drop support for clojure 1.2 and 1.3
- add support for clojure 1.6
- change all :use statements to :require statements
- use better docstring support for defs
- remove sleep calls in tests
- make Jetty quieter while running tests
- newer type hinting syntax
- Make :decode-body-headers more reliable by using a byte array instead of slurp.