UP | HOME

Asynchronous HTTP Client - Clojure - Changelog

Table of Contents

1 Release 1.3.1

1.1 Update dependencies

2 Release 1.3.0

2.1 Update documentation

2.2 Update tests

2.3 Update dependencies

2.4 Switch to lein-v for version management

3 Release 1.2.0

3.1 Update dependencies

3.1.1 Update async-http-client to 1.9.39 (fixes issue #74)

3.2 Fix bug when destructuring map (blocker for clojure.spec)

3.3 Add ability to configure read timeout

3.4 Allow request options to be passed for websockets

4 Release 1.1.0

4.1 Fix issue #69

4.2 Add support for asynchronous close

5 Release 1.0.1

5.1 Fix websocket support

#66

6 Release 1.0.0

6.1 Update to the latest version of AsyncHttpClient (1.9.31)

6.1.1 Remove `remove-params-on-redirect` option

No longer supported by the underlying AsyncHttpClient library and of dubious value.

6.1.2 Remove `async-connect` option

No longer supported by the underlying AsyncHttpClient library; all connections are performed asynchronously.

6.1.3 Overhaul character set handling for multipart functions

6.1.4 Use more precise exceptions

6.1.5 Move WebSocket implementation to its own namespace

6.2 Use more idiomatic Clojure

6.3 Extract websocket code to separate namespace

6.4 Issue with the AsyncHttpClient Java library.

See https://github.com/AsyncHttpClient/async-http-client/issues/996
To workaround, set a realm with

{:preemptive true :target-proxy true}

7 Release 0.6.1

7.1 Allow websocket to take request options   enhancement

7.2 Add logging to client create/close calls

7.3 Update dependencies, including Clojure

8 Release 0.6.0

8.1 Modernize Clojure syntax with `:require` and `:refer` instead of `:use`

8.2 Update com.ning/async-http-client dependency to 1.8.16

8.2.1 Handle new options and refactoring of Cookie class with maximum BC

Add `expires`, `http-only?` and `wrap?` options to Cookie options

8.2.2 Return java.net.UnknownHostException instead of java.net.ConnectException (with UnresolvedAddressexception cause) on bad host

8.2.3 Add wrap? option to cookies

8.2.4 Return timeout and connection limit exceptions in `error` function instead of throwing an exception on request execution thread

8.2.5 Return java.nio.charset.Charsets on multipart parts

8.2.6 Default charset on StringPart (typically) is US-ASCII

8.2.7 Remove `raw-url` function -it is no longer supported by the underlying Java AsyncHttpclient

8.2.8 Add `uri` function to partially back fill for raw-url

8.2.9 Remove async connect functionality -connections are now always async

8.2.10 Handle empty HttpResponseBodyPart in onBodyPartReceived

With an empty response body, 1.8.0 calls onBodyPartReceived with a zero- length HttpResponseBodyPart, while version 1.7.x did not even call onBodyPartReceived.

9 Release 0.5.3

9.1 Update Clojure dependency to 1.6

9.2 Deprecate raw-url function and response key

Due to lack of support in future versions of the com.ning/async-http-client, raw-url will not be supported in future versions.

9.3 Restructure tests

9.3.1 Update jetty to 9.3.0.RC0

9.3.2 Update log dependencies

9.3.3 Provide fresh client to each test to resolve issue with Clojure 1.6

9.3.4 Fix brittle tests

9.4 Remove RequestBuilderWrapper

9.5 Update codox and lein-difftest plugins

10 Release 0.5.2

Compile with Java 1.6

11 Release 0.5.1

11.1 remove-params-on-redirect

Issues #46, #47 and #48 by Joseph Wilk.

11.2 Upgrade AHC to 1.7.10

12 Release 0.5.0

12.2 http.async.client/redirect?

Added utility fn for checking if response Is redirect?.

12.3 http.async.client/location

Added utility fn for Reading location.

12.4 Moved to Leiningen 2

12.5 PATCH

Added support for HTTP PATCH method.

12.6 Initial WebSocket support

Not documented yet, Code is here. Demo usage can be found in hac-live dome for EuroClojure 2012. Request 12 and Request 13 are WebSocket examples.

12.7 Upgrade AHC to v1.7.5

13 Release 0.4.5

13.1 Multipart support

Allow POST and PUT to send multipart messages. When vector is provided as body it is treated as multipart. Please consult documentation and tests for examples of usage.

13.2 Add convenience url and raw-url

#35. Allow easy retrieval of URL used to request resource.

13.3 There's a function for that!

Listen to what kibit has to say.

14 Release 0.4.4

14.1 Simplified callbacks API

Issue #32.

14.2 Better documented callbacks

This was long outstanding issue #12.

14.3 Upgrade AHC to 1.7.4

14.4 Upgrade Clojure to 1.4

15 Release 0.4.3

15.1 Issue #30 by Cesar Canassa

Fixes issue with single cookie in response.

15.2 Upgrade AHC to 1.7.1

16 Release 0.4.2

16.1 Issue #29 by A. Diamond

Added support for client certificates.

17 Release 0.4.1

17.1 Upgrade AHC to 1.7.0

17.2 Issues #26, #27, #28

#26
Justin Kramer, Brian Tatnall Empty response body hangs c/body, c/string
#27
Justin Kramer create-client's :idle-in-pool-timeout option not being set correctly
#28
Karsten Lang Documentation update

17.3 Improved logging

Improved logging configuration for running tests.

17.4 Tested against Clojure 1.4.0-beta1

18 Release 0.4.0

18.1 Clojure 1.3 compatible

18.2 Support for multiple values for same key (QString)

#22

18.3 Clojure contrib independent

#24

18.4 Upgrade async-http-client to v1.6.5

19 Release 0.3.1

19.1 Upgrade async-http-client to v1.6.4

20 Release 0.3.0

20.1 Upgrade async-http-client to v1.6.3

20.2 Control over preemptive authentication

Patch provided by xeqi.

20.3 Explicit client usage

Now following functions require client as first argument:

  • GET
  • PUT
  • POST
  • DELETE
  • HEAD
  • OPTIONS
  • request-stream
  • stream-seq
  • execute-request

You still create client with create-client function.

20.4 Removed with-client macro

This didn't really bring much value. Migration path. From:

(with-client {:key val}
  ;; client usage
  (let [resp (GET url)]))

To:

(with-open [client (create-client :key val)]
  ;; client usage
  (let [resp (GET client url)]))

20.5 Clojure 1.2.1

Fixed cyclic dependency that was preventing http.async.client from been used in Clojure 1.2.1.

21 Release 0.2.2

21.1 get-encoding helper works w/o Content-Type header

21.2 Upgrade async-http-client to v.1.5.0

21.3 Exposed more configuration options

21.3.1 Timeouts

21.3.2 Proxy

21.3.3 Authentication

21.4 Zero byte copy mode

If sending File as body, zero byte copy is used.

21.5 Allow providing your own poll

Vadim Geshel contribution.

21.6 Allow Asynchronous Connect

Vadim Geshel contribution.

21.7 Fix seq streaming API

Previous versions of seq streaming API have been holding to head, not anymore.

21.8 Lots of performance improvements

Underlying async-http-client has undergone serious optimization changes.

22 Release 0.2.1

22.1 Terminate body seq if errored   bug

22.2 Canceling request

http.async.client/cancel and http.async.client/canceled?

22.3 Request timeout

Per request configuration of request timeout in ms.

(GET url :timeout 100)

22.4 Close client

http.async.client/close.

(c/close)
;; or
(c/close hac)

22.5 Upgrade to v1.3.2 of async-http-client

23 Release 0.2.0

23.1 Stream as seq

Response body can be seq, this allows for easy HTTP Stream handling. Documentation.

23.2 Cookies

Added cookies support. Sending and receiving.

23.3 Authentication support

Basic and Digest from rfc2617 are supported. Documentation.

23.4 Proxy per request

Proxy can be specified per request. Documentation.

23.5 Branding User-Agent

Specifying User-Agent per client. http.async.client/create-client and http.async.client/with-client.

23.6 Keyworded maps in API

Like :options in http.async.client/GET.

Author: Chris Hapgood

Created: 2019-02-10 Sun 20:48

Emacs 24.4.1 (Org mode 8.2.10)

Validate