Skip to content

Latest commit

 

History

History
350 lines (343 loc) · 15.7 KB

changelog.org

File metadata and controls

350 lines (343 loc) · 15.7 KB

clj-http changelog

Changelog

List of user-visible changes that have gone into each release

3.12.4 (unreleased)

3.12.3

  • Allow http-client re-use in async situation (#599) #599

3.12.2

  • Upgrade Dependencies (#598) #598

3.12.1

  • Bugfix for :normalize-uri (#584) #584

3.12.0

  • Create SSLContext consistently for all connection managers (#575) #575
  • Adds RequestConfig Option :normalize-uri (#583) #583

3.11.0

  • Adds workaround for Async Multipart uploads greater than 25 kb (#574) #574
  • Adds an additional style for multi-param-style added (#562) #562
  • Close transit input stream after reading response (#565) #565
  • Bump patch versions of apache httpcomponents to latest. (#569) #569
  • Fixed decode-json-body (#568) #568
  • Handle quoted parameter values in content type (#573) #573

3.10.3

  • Improve error message when using incompatible version of cheshire #558
  • Properly handle “308 Permanent Redirect” status code #554

3.10.2

  • Fix performance regressions from #528 #546
  • Adds support for custom DNS Resolvers #545
  • Buffer :debug output to improve readability #544
  • Improve compatbility with GraalVM #543
  • Bug fix: Check first byte before wrapping response stream with gunzip #549

3.10.1

3.10.0

  • Add trust-manager and key-managers support to the client #469
  • Improving consistency of connection option names #483 #477
  • Ensure Socket Timeout is set for BasicHttpClientConnectionManager #463
  • Reduce body allocation and copying #475

3.9.1

  • Fix body parsing when first byte value is 255 #449
  • Add custom :unexceptional-status option #451

3.9.0

  • Add support for reusable http clients, returning the client in :http-client and allowing one to be specified (with the same setting) - #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 #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. #445

3.8.0

  • Reintroduce the :save-request and :debug-body options
  • Wrap nested querystring params before form params, fixing #427 Reverted, see further below
  • Merged #426 to allow an empty SSLGenericSocketFactory context
  • Merged #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 #427
  • Added :http-builder-fns and :async-http-builder-fns to support arbitrary customizations to the HttpClientBuilder and HttpAsyncClientBuilder
  • Fixed an issue where redirects to a bad location could cause the async client to hang - #435
  • client/parse-url now includes the original URL in the :url key
  • core/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 #257

3.7.0

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

2.0.0

  • merged #274 to update Potemkin so it supports Clojure 1.7.0 correctly
  • merged #264 to add support for coercion of urlencoded data
  • make ALL optional dependencies opt-in, rather than opt-out

1.1.2

  • bumped dependencies for transit-clj and tools.reader
  • merge #263 to only decode body headers when the content-type is either missing or starts with “text”

1.1.1

  • merge #262 to prevent NullPointerException when decoding body headers with HEAD requests
  • merge #261 to decode user info from URL if provided
  • merge #260 to upgrade tools.reader for better cljs compatibility
  • add 304 (not modified) to the list of unexceptional responses, see #259

1.1.0

  • merged #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 #248 to removed deprecated cookie APIs from cookie.clj
  • merged #245 to do some cleanups and small import fixes
  • merged #240 to implement meta/with-meta for the header map
  • merged #242 fixing a connection leak when http-entity is null
  • bumped all dependencies to latest versions
  • merged #235 to fix wrap-nested-params
  • merged #236 to clean up multipart constructors and reflection
  • merged #234 to allow scheme customization in default connection

1.0.1

  • merged #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)

1.0.0

  • merged #215 to add transit support
  • drop support for clojure 1.4.0, start testing 1.7.0
  • merged #213 to allow passing in an already existing keystore, not just a path
  • merged #211 to detect charset encoding for url-encode

0.9.2

  • merged #206 to handle null passwords for keystores
  • merged #201 to make :auto content type parsing dispatch pluggable
  • Bump crouton and tools.reader dependencies
  • Merged #199 to add support for form parameters in the PATCH method
  • Bump dependencies and fix tests for 1.6.0 compatibility

0.9.1

  • automatically coerce header values to strings
  • fix issue where :ignore-unknown-host wasn’t using the opt function correctly

0.9.0

  • Bumped httpcore to 4.3.2
  • Merged #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 #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

0.7.9

  • Make :decode-body-headers more reliable by using a byte array instead of slurp.
  • Merged #181 to fix some tests
  • Merged #178 to eliminate test reflection
  • Merged #177 to update apache HTTP deps
  • Merged #175 to add {:as :json-strict} for output coercion
  • Added {:as :json-strict-string-keys} output coercion
  • bump dependencies to their latest
  • Merged #172 to update .gitignore file and clean up whitespace for new clojure-mode
  • Merged #171 to support SOCKS proxies

Work log

2015-07-24

  • branched master to create 2.x
  • start major rewrite on master branch for non-deprecated Apache usage

Released 2.0.0

2015-07-18

  • merged #274 to update Potemkin so it supports Clojure 1.7.0 correctly

2015-05-23

  • merged #264 to add support for coercion of urlencoded data
  • make ALL optional dependencies opt-in, rather than opt-out

Released 1.1.2

2015-05-06

  • bumped dependencies for transit-clj and tools.reader

2015-04-24

  • merge #263 to only decode body headers when the content-type is either missing or starts with “text”

Released 1.1.1

2015-04-22

  • merge #262 to prevent NullPointerException when decoding body headers with HEAD requests

2015-04-20

  • merge #261 to decode user info from URL if provided

2015-04-14

  • merge #260 to upgrade tools.reader for better cljs compatibility

2015-04-05

  • add 304 (not modified) to the list of unexceptional responses, see #259

Released 1.1.0

2015-03-03

  • merged #255 to add support for Windows NTLM authentication

2015-02-08

  • Add the `with-additional-middleware` macro
  • Add the ability to specify form-param-encoding for encoding form parameters

2015-01-19

  • merged #248 to removed deprecated cookie APIs from cookie.clj
  • merged #245 to do some cleanups and small import fixes

2015-01-15

  • merged #240 to implement meta/with-meta for the header map
  • merged #242 fixing a connection leak when http-entity is null
  • bumped all dependencies to latest versions

2014-12-13

  • merged #235 to fix wrap-nested-params

2014-12-12

  • merged #236 to clean up multipart constructors and reflection

2014-12-02

  • merged #234 to allow scheme customization in default connection

Released 1.0.1

2014-10-28

  • merged #232 to fix empty on header-map

2014-10-17

  • fix :json-strict-string-keys

2014-09-08

  • exclude clojure.core/update from client ns

2014-08-15

  • added :decode-cookies option to allow skipping cookie header decode (if the server sends incorrectly formatted cookies for some reason)

Released 1.0.0

2014-08-11

  • merged #215 to add transit support
  • drop support for clojure 1.4.0, start testing 1.7.0

2014-08-07

  • merged #213 to allow passing in an already existing keystore, not just a path

2014-07-27

  • merged #211 to detect charset encoding for url-encode

Released 0.9.2

2014-05-27

  • merged #206 to handle null passwords for keystores

2014-05-14

  • merged #201 to make :auto content type parsing dispatch pluggable

2014-04-21

  • Bump crouton and tools.reader dependencies

2014-04-09

  • Merged #199 to add support for form parameters in the PATCH method

2014-03-26

  • Bump dependencies and fix tests for 1.6.0 compatibility

Released 0.9.1

2014-03-15

  • automatically coerce header values to strings

2014-03-05

  • fix issue where :ignore-unknown-host wasn’t using the opt function correctly

Released 0.9.0

2014-02-25

  • Bumped httpcore to 4.3.2

2014-02-19

  • Merged #190 to support file multiparts with content, mime-type and name

2014-02-16

  • Unify all boolean operators so {:debug true} and {:debug? true} are treated the same

2014-02-09

  • Fix :trace-redirects being [nil] when :uri is used

2014-02-06

  • Merged #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

Released 0.7.9

2014-02-01

  • Make :decode-body-headers more reliable by using a byte array instead of slurp.