List of user-visible changes that have gone into each release
- add buffering for HttpEntity, with ability to turn off if needed, fixes lein issue with repeatable requests
- create a custom X509HostnameVerifier for the :insecure? option
- explicitly require httpcore instead of leaving it to a transitive dep
- update httpcomponents to 4.2.2
- implement HTML5 charset header reading from body
- bump Crouton to 0.1.1 for faster speeds
- add feature to decode body headers, merging them into response headers if they are present
- merged #98 to add optional :default-per-route to with-connection-pool
- bump cheshire to fix json encoding bug
- merged #95 to add support for setting aribtrary client params to the http client
- Merged #94 to remove some reflection
- update cheshire dep, make clojure a dev-dependency
- allow overriding the multipart part name with :part-name
- merged #91 to add support for :digest-auth
- added request timing middleware to add :request-time key for request timing
- add wrap-cookie-store to send cookie-store cookies with a request automatically
- merged #90 to standardize on lower-case headers for HTTP requests
- merged #88 to add chunked encoding
support (
:length
no longer required along with input stream:body
)
- fix clojure 1.3’s exception wrapping for some exceptions
- merged #87 to allow using http.nonProxyHosts
- mark json-encode and json-decode dynamic, so they could be rebound if desired
- update httpclient and httpmime to 4.2.1
- update commons-codec to 1.6
- update common-io to 2.4
- change body decompression to be optional, if desired
- make the :content-type and :character-encoding options part of middleware, not the core request
- document all the middleware
- merged #85 to allow low-level callback for debugging
- rewrite multipart body entity creation to use different map format, allowing :mime-type and :encoding keys in some cases
- bump cheshire to 4.0.1 and slingshot to 0.10.3
- fix an issue where cookies were encoded and should not be
- merged #80 to allow specifying the keystore type
- merged #79 to allow pluggable output coercion (multimethod)
- support custom x509 keystore/trust-stores
- fixed an issue where multiple link headers would cause an exception to be thrown
- added :debug-body that adds plaintext body information to the :debug output
- fix json encoded form params with nested maps
- fix attempted json coercion when a bad status is received
- merged #69 to add support for :oauth-token authentication
- merged #70 to save the apache Http object when :save-request? is true
- merged #68 to support additional options/delete/copy/move HTTP methods
- add support for the :patch method type
- merged #66 to add support for ‘Link’ header
- added ability to specify your own retry-handler for IOExceptions if desired
- bumped httpclient and httpmime to 4.1.3
- bump to released version of clojure (1.4)
- added documentation about ipv6 requests
- fixed #57 by have wrap-redirects redirect according to the RFC and adding the :force-redirects option to be more browser-like
- merged #61 to add support for nested param maps
- fixed an issue where urls like http://user:pass@foo.com didn’t work correctly for basic-auth
- added support for cookie stores
- added utility methods to retrieve cookies as a map from the cookie store
- set the default maximum number of redirects to 20
- same as 0.3.4, but with a newer cheshire that doesn’t interfere with clj-json
- improved commit from pull/55 to make the predicate more generalized to any kind of entity request
- make Cheshire an optional dependency, only for {:as :json} and json form-params
- merged #55 to fix HEAD requests with body contents
- merged #53 to add status functions into the clj-http.client namespace
- added the ability to specify {:as :clojure} to get back a clojure datastructure, or {:as :auto} with content-type=application/clojure
- merged #52 to support json-encoded form params
- added a test for json-encoded form params as request body
- merged #51 to allow :form-params on PUT requests
- bump Cheshire and slingshot deps
- add the :throw-entire-message? option to include resp in Exception message
- throw an IllegalArgumentException instead of a regulor Exception on nil urls
- add ability to redirect to relative paths (ngrunwald)
- merged #48 to fix :stream bodies (to make sure they are not coerced on output)
- merged #49 to check for nil URLs when using client functions
- switch from assertions to exceptions for nil URLs
- merged #46 to add :trace-redirects to the response map
- merged #47 to allow GET requests with a :body set
- merged #44 to add ability to specify maximum number of redirects
- add tests for max-redirects
- merged #42 to allow strings or keywords for :scheme in requests
- added test for different :schemes
- merged #40 to allow per-request proxy settings
- remove a few more reflections
- added ablity to return the body as a stream with {:as :stream}
- general code cleanup
- add ability to ignore unknown host if desired ({:ignore-unknown-host? true})
- use much better Enitity’s for the body, depending on type
- bump all dependencies
- test re-org to make better sense (and allow C-c t in emacs)
- merged #36 to fix url-encoding of multiple query params using the same key
- merged #34 to fix decoding cookies that don’t follow RFC spec
- Add better coercion, adding {:as :json}, {:as :json-string-keys} and {:as :auto}
- merged #31 to remove more reflection warnings
- some whitespace changes
- merged #30 to remove more reflection warnings
- removed swank from dev deps
- bump 1.4 to alpha3 in multi deps
- don’t use :server-port unless required (fixes problem with some web servers)
- smaller error message on exceptions (thrown object is still the same)
- added the :save-request? option to return the request object in a :request key in the response map
- multiple headers with the same name are now preserved when they have differing cases
- multipart form uploads
- bump slingshot to 0.9.0
- Got a functioning reusable connection method, (with-connection-pool …)
- upgrade slingshot to 0.8.0
- upgrade commons-io to 2.1
- merged #20 to allow :basic-auth as a string
- added :insecure? flag
- fix AOT by requiring clojure.pprint
- wrap-redirects now handles recursive redirects
- wrap-exceptions now uses Slingshot to throw a much more useful exception when there was a problem with the request
- fixed an issue when malformed server responses could NPE the decompression middleware
- added a :debug flag to pretty-print the request map and object to stdout before performing the request to aid in debugging
- decode cookies from response into :cookies (thanks r0man)
- redone redirects, they can now be toggled with {:follow-redirects false} in the request
- decompression of responses has been fixed (thanks senior)
- accept Content-Encoding or content-encoding from responses (thanks senior)
- added ability to specify sending a url-encoded :body of form params using {:form-params {:key value}} (thanks senior)
- updated dependencies to be the latest versions
- added ability to use system proxy for connections (thanks jou4)
- added ability to specify socket and connection timeouts in request (thanks zkim)
Log of merges/issues/work that’s gone in so I know what to put in the changelog for the next release
- merged #101 to allow request headers to specify multiple values
- add buffering for HttpEntity, with ability to turn off if needed, fixes lein issue with repeatable requests
- create a custom X509HostnameVerifier for the :insecure? option
- explicitly require httpcore instead of leaving it to a transitive dep
- update httpcomponents to 4.2.2
- implement HTML5 charset header reading from body
- bump Crouton to 0.1.1 for faster speeds
- add feature to decode body headers, merging them into response headers if they are present
- merged #98 to add optional :default-per-route to with-connection-pool
- bump cheshire to fix json bug
- add a test for :conn-timeout
- merged #95 to add support for setting aribtrary client params to the http client
- Merged #94 to remove some reflection
- update cheshire dep, make clojure a dev-dependency
- allow overriding the multipart part name with :part-name
- merged #91 to add support for :digest-auth
- added request timing middleware to add :request-time key for request timing
- add wrap-cookie-store to send cookie-store cookies with a request automatically
- merged #90 to standardize on lower-case headers for HTTP requests
- merged #88 to add chunked encoding
support (
:length
no longer required along with input stream:body
)
- fix clojure 1.3’s exception wrapping for some exceptions
- merged #87 to allow using http.nonProxyHosts
- mark json-encode and json-decode dynamic, so they could be rebound if desired
- update httpclient and httpmime to 4.2.1
- update commons-codec to 1.6
- update common-io to 2.4
- change body decompression to be optional, if desired
- make the :content-type and :character-encoding options part of middleware, not the core request
- document all the middleware
- merged #85 to allow low-level callback for debugging
- rewrite multipart body entity creation to use different map format, allowing :mime-type and :encoding keys in some cases
- bump cheshire to 4.0.1 and slingshot to 0.10.3
- fix an issue where cookies were encoded and should not be
- merged #80 to allow specifying the keystore type
- merged #79 to allow pluggable output coercion (multimethod)
- fixed an issue where multiple link headers would cause an exception to be thrown
- added :debug-body that adds plaintext body information to the :debug output
- fix json encoded form params with nested maps
- fix attempted json coercion when a bad status is received
- merged #69 to add support for :oauth-token authentication
- merged #70 to save the apache Http object when :save-request? is true
- merged #68 to support additional options/delete/copy/move HTTP methods
- add support for the :patch method type
- merged #66 to add support for ‘Link’ header
- added ability to specify your own retry-handler for IOExceptions if desired
- bumped httpclient and httpmime to 4.1.3
- bump to released version of clojure (1.4)
- added documentation about ipv6 requests
- fixed #57 by have wrap-redirects redirect according to the RFC and adding the :force-redirects option to be more browser-like
- merged #61 to add support for nested param maps
- fixed an issue where urls like http://user:pass@foo.com didn’t work correctly for basic-auth
- merged #58 to add support for cookie stores
- added utility methods to retrieve cookies as a map from the cookie store
- merged #56 to set the default maximum number of redirects to 20
- improved commit from pull/55 to make the predicate more generalized to any kind of entity request
- make Cheshire an optional dependency, only for {:as :json} and json form-params
- document clj-json/cheshire incompatibility problems
- merged #55 to fix HEAD requests with body contents
- merged #53 to add status functions into the clj-http.client namespace
- added the ability to specify {:as :clojure} to get back a clojure datastructure, or {:as :auto} with content-type=application/clojure
- merged #52 to support json-encoded form params
- added a test for json-encoded form params as request body
- merged #51 to allow :form-params on PUT requests
- bump Cheshire and slingshot deps
- add the :throw-entire-message? option to include resp in Exception message
- throw an IllegalArgumentException instead of a regulor Exception on nil urls
- add ability to redirect to relative paths (ngrunwald)
- merged #48 to fix :stream bodies (to make sure they are not coerced on output)
- merged #49 to check for nil URLs when using client functions
- switch from assertions to exceptions for nil URLs
- merged #46 to add :trace-redirects to the response map
- whitespace changes
- merged #47 to allow GET requests with a :body set
- merged #44 to add ability to specify maximum number of redirects
- add tests for max-redirects
- merged #42 to allow strings or keywords for :scheme in requests
- added test for different :schemes
- merged #40 to allow per-request proxy settings
- remove a few more reflections
- added ablity to return the body as a stream with {:as :stream}
- general code cleanup
- add ability to ignore unknown host if desired ({:ignore-unknown-host? true})
- use much better Enitity’s for the body, depending on type
- bump all dependencies
- test re-org to make better sense (and allow C-c t in emacs)
- merged #36 to fix url-encoding of multiple query params using the same key
- merged #34 to fix decoding cookies that don’t follow RFC spec
- Add better coercion, adding {:as :json}, {:as :json-string-keys} and {:as :auto}
- merged #31 to remove more reflection warnings
- some whitespace changes
- merged #30 to remove more reflection warnings
- removed swank from dev deps
- bump 1.4 to alpha3 in multi deps
- merged #27 to only use :server-port for non-standard ports. This was causing problems for some web servers
- remove :save-request? from the saved request map (if it’s being saved, you probably already know you wanted to save it…)
- added the ‘safe-request?’ flag option to save the entire request in the :request key in the response object, several people have requested this
- refactor some of the param setting out of the request method in an effort to make it slightly smaller
- merged in a pull request fixing headers when multiple headers are received: #25
- merged #24 for a smaller error message
- finish up the multipart work, thanks to some testing cases from Raynes
- document multipart posts in readme
- Got a functioning reusable connection method, (with-connection-pool …)
- merged #21 to upgrade slingshot to 0.8.0
- merged #20 to allow :basic-auth as a string
- changed wrap-redirects to recursively handle redirects instead of only redirecting one-level down
- remove some reflection in cookies by defining ClientCookie
- merged #16 to add an :insecure? flag to ignore SSL errors
- merged #13 to add a require for pprint in core
- added the :debug option to requests
- restarted an exception branch that uses Slingshot to throw a much more useful exception
- fixed an issue when malformed server responses could NPE the decompression middleware
- merged #7 to accept both Content-Encoding and content-encoding, since ring uses the lowercase version
- merged #6 to allow for sending form params with :form-params as a urlencoded body on POST requests
- merged #5 to fix decompression
- added ability to turn off redirects with {:follow-redirects false} in the request
- merged #2 to fix redirects
- merged #1 for decoding cookies in responses
- took over maintenance from Mark
- updated dependencies
- merged jou4’s branch to allow proxy usage
- merged zkim’s branch for specifying timeouts