All notable changes since 0.22 are documented in GitHub Releases.
- escape filename in the multipart/form-data Content-Disposition header
- Fix request marshaling
- Replace
mime-types
withmini_mime
Breaking changes
- Require Ruby >= 2.3.0
Fixes
Marshal.dump
fails on response objects when request option:logger
is set or:parser
is a proc- Switch
:pem
option to toOpenSSL::PKey.read
to support other algorithms
- Multipart/Form-Data: rewind files after read
- add frozen_string_literal pragma to all files
- Better handling of Accept-Encoding / Content-Encoding decompression (fixes #562)
- Rename cop Lint/HandleExceptions to Lint/SuppressedException.
- Encode keys in query params.
- Fixed SSL doc example.
- Add a build status badge.
- Support gzip/deflate transfer encoding when explicit headers are set.
- Support edge case cookie format with a blank attribute.
0.17.2 is broken #681
- Pass options to dynamic block headers
- Normalize urls with URI adapter to allow International Domain Names support
- Add max_retries support
- Minize gem size by removing test files
- Fix encoding of streamed chunk
- Avoid modifying frozen strings
- Expose .connection on fragment block param
- Add support for
Net::HTTP#write_timeout
method (Ruby 2.6.0)
- Add support for Ruby 2.6
- Fix a few multipart issues
- Improve a memory usage for https requests
- Add response code to streamed body
- Add Logstash-compatible formatter
- Add support for headers specified with symbols
- Fix response object marshalling
- Add ability to send multipart, without passing file
- Fix detection of content_type for multipart payload
- Process dynamic headers before making actual request
- Fix multipart uploads with ActionDispatch::Http::UploadedFile TempFile by using original_filename
- Added support for lock and unlock http requests
- Parse content with application/hal+json content type as JSON
- Convert objects to string when concatenating in multipart stuff
- Fix multipart to set its header even when other headers are provided
Fixed
Fixed
Fixed
Fixed
- Prevent gsub errors with different encodings.
- Prevent passing nil to encode_body.
Fixed
- Fix processing nil body for HEAD requests.
- Add missing require to headers.rb (33439a8).
Fixed
- Remove symlink from specs. It was reportedly still getting bundled with gem.
Fixed
- Stop including test files in gem. Fixes installation issues on windows due to symlink in spec dir.
Breaking Changes
- require Ruby >= 2.0.0
Fixed
- fix numerous bugs
- handle utf-8 bom for json parsing
- do not overwrite default headers unless specified
Breaking Changes
- None
Added
- added status predicate methods to Response#respond_to?
- support for MKCOL method
- one fewer dependency: remove json gem from gemspec
- optional raising exception on certain status codes
Fixed
- remove post install emoji as it caused installation issues for some people
- avoid calling String#strip on invalid Strings
- preserve request method on 307 and 308 redirects
- output version with --version for command line bin
- maintain head request method across redirects by default
- add support for RFC2617 MD5-sess algorithm type
- add party popper emoji to post install message
- allow setting a custom URI adapter
- correct redirect url for redirect paths without leading slash
- remove core_extensions.rb as backwards compat for ruby 1.8 not needed
- replace URI.encode with ERB::Util.url_encode
- allow the response to be tapped
- minor improvement
- added option to allow for streaming large files without loading them into memory (672cdae)
- minor improvement
- Set correct path on redirect to filename
- ensure logger works with curl format
- new
- change
- minor improvement
- new
- bug fix
- change
- minor improvement
- new
- bug fix
- change
- MIME-type files of javascript are returned as a string instead of JSON
- Made SSL connections use the system certificate store by default
- Do not pass proxy options to Net::HTTP connection if not specified
- Replace multi_json with stdlib json
- [Require Ruby >= 1.9.3]
- Response returns array of returned cookie strings
- [Allow '=' within value of a cookie]
- minor improvements
- new
- Add COPY http request handling
- Ruby 2.0 tests
- [Ruby >= 2.0.0 support both multiple_choice? and multiple_choices?]
- bug fix
- change
- changes
- removed yaml support because of security risk (see rails yaml issues)
- new
- bug fixes
- don't treat port 4430 as ssl
- deep clone default options
- a few net digest auth fixes
- new
- bug fixes
- new
- add -r to make CLI return failure code if status >= 400
- allow blank username from CLI
- bug fixes
- return nil for null body
- automatically deflate responses with a Content-Encoding: x-gzip header
- Do not HEAD on POST request with digest authentication
- add support for proxy authentication
- fix posting data with CLI
- require rexml/document if xml format from CLI
- support for fragmented responses
- bug fixes
- content-encoding header should be removed when automatically inflating the body
- new
- switch to multi json/xml for parsing by default
- bug fixes
- fix redirects to relative uri's
- bug fix
- Make response honor respond to
- net http timeout can also be a float
- bug fix
- Fix NoMethodError when using the NON_RAILS_QUERY_STRING_NORMALIZER with a hash whose key is a symbol and value is nil
- bug fix
- caused issue with latest rubygems
- bug fixes
- Set VERIFY_NONE when using https. Ruby 1.9.2 no longer sets this for us. gh-67
- bug fixes
- Fix digest auth for unspecified quality of protection (bjoernalbers, mtrudel, dwo)
- bug fixes
- Fix gem dependencies
- bug fixes
- Fix uninitialized constant HTTParty::Response::Net in 1.9.2 (cap10morgan)
- Other fixes for 1.9.2, full suite still fails (cap10morgan)
- minor enhancements
- Added query methods for HTTP status codes, i.e. response.success? response.created? (thanks citizenparker)
- Added support for ssl_ca_file and ssl_ca_path (dlitz)
- Allow custom query string normalization. gh-8
- Unlock private keys with password (freerange)
- Added high level request documentation (phildarnowsky)
- Added basic post example (pbuckley)
- Response object has access to its corresponding request object
- Added example of siginin into tripit.com
- Added option to follow redirects (rkj). gh-56
- bug fixes
- Fixed superclass mismatch exception while running tests (thanks dlitz http://github.com/dlitz/httparty/commit/48224f0615b32133afcff4718ad426df7a4b401b)
- minor enhancements
- updated to crack 0.1.8
- bug fixes
- subclasses always merge into the parent's default_options and default_cookies (l4rk).
- subclasses play nicely with grand parents. gh-49
-
major enhancements
- Digest Auth (bartiaco, sbecker, gilles, and aaronrussell)
- Maintain HTTP method across redirects (bartiaco and sbecker)
- HTTParty::Response#response returns the Net::HTTPResponse object
- HTTParty::Response#headers returns a HTTParty::Response::Headers object which quacks like a Hash + Net::HTTPHeader. The #headers method continues to be backwards-compatible with the old Hash return value but may become deprecated in the future.
-
minor enhancements
- Update crack requirement to version 0.1.7 You may still get a warning because Crack's version constant is out of date
- Timeout option can be set for all requests using HTTParty.default_timeout (taazza)
- Closed #38 "headers hash should downcase keys so canonical header name can be used"
- Closed #40 "Gzip response" wherein gziped and deflated responses are automatically inflated. (carsonmcdonald)
- minor enhancements
- Update crack requirement to version 0.1.6
-
bug fixes
- Handle 304 response correctly by returning the HTTParty::Response object instead of redirecting (seth and hellvinz)
- Only redirect 300 responses if the header contains a Location
- Don't append empty query strings to the uri. Closes #31
- When no_follow is enabled, only raise the RedirectionTooDeep exception when a response tries redirecting. Closes #28
-
major enhancements
- Removed rubygems dependency. I suggest adding rubygems to RUBYOPT if this causes problems for you. $ export RUBYOPT='rubygems'
- HTTParty#debug_output prints debugging information for the current request (iwarshak)
- HTTParty#no_follow now available as a class-level option. Sets whether or not to follow redirects.
-
minor enhancements
- HTTParty::VERSION now available
- Update crack requirement to version 0.1.5
-
bug fixes
- inheritable attributes no longer mutable by subclasses (yyyc514)
- namespace BasicObject within HTTParty to avoid class name collisions (eric)
-
major enhancements
- Custom Parsers via class or proc
- Deprecation warning on HTTParty::AllowedFormats moved to HTTParty::Parser::SupportedFormats
-
minor enhancements
- Curl inspired output when using the binary in verbose mode (alexvollmer)
- raise UnsupportedURIScheme when scheme is not HTTP or HTTPS (djspinmonkey)
- Allow SSL for ports other than 443 when scheme is HTTPS (stefankroes)
- Accept PEM certificates via HTTParty#pem (chrislo)
- Support HEAD and OPTION verbs (grempe)
- Verify SSL certificates when providing a PEM file (collectiveidea/danielmorrison)
-
bug fixes
- Fixed class-level headers overwritten by cookie management code. Closes #19
- Fixed "superclass mismatch for class BlankSlate" error. Closes #20
- Fixed reading files as post data from the command line (vesan)
-
minor enhancements
- Timeout option added; will raise a Timeout::Error after the timeout has elapsed (attack). Closes #17 HTTParty.get "http://github.com", timeout: 1
- Building gem with Jeweler
- 2 minor update
- :query no longer sets form data. Use body and set content type to application/x-www-form-urlencoded if you need it. :query was wrong for that.
- Fixed a bug in the cookies class method that caused cookies to be forgotten after the first request.
- Also, some general cleanup of tests and such.
- 1 minor update
- added message to the response object
- 2 minor changes
- response code now returns an integer instead of a string (jqr)
- rubyforge project setup for crack so i'm now depending on that instead of jnunemaker-crack
- 1 minor fix
- gem 'jnunemaker-crack' instead of gem 'crack'
- 1 minor change
- Switched xml and json parsing to crack (same code as before just moved to gem for easier reuse in other projects)
- 1 minor fix, 1 minor enhancement
- Fixed unescaping umlauts (siebertm)
- Added yaml response parsing (Miha Filej)
- 1 major enhancement, 1 bug fix
- JSON gem no longer a requirement. It was conflicting with rails json stuff so I just stole ActiveSupport's json decoding and bundled it with HTTParty.
- Fixed bug where query strings were being duplicated on redirects
- Added a bunch of specs and moved some code around.
- 1 minor enhancement
- Made encoding on query parameters treat everything except URI::PATTERN::UNRESERVED as UNSAFE to force encoding of '+' character (Julian Russell)
- 3 minor enhancements
- Added a 'headers' accessor to the response with a hash of any HTTP headers. (Don Peterson)
- Add support for a ":cookies" option to be used at the class level, or as an option on any individual call. It should be passed a hash, which will be converted to the proper format and added to the request headers when the call is made. (Don Peterson)
- Refactored several specs and added a full suite of cucumber features (Don Peterson)
- 1 major fix
- fixed major bug with response where it wouldn't iterate or really work at all with parsed responses
- 2 minor fixes, 2 minor enhancements, 2 major enhancements
- fixed undefined method add_node for nil class error that occasionally happened (juliocesar)
- Handle nil or unexpected values better when typecasting. (Brian Landau)
- More robust handling of mime types (Alex Vollmer)
- Fixed support for specifying headers and added support for basic auth to CLI. (Alex Vollmer)
- Added first class response object that includes original body and status code (Alex Vollmer)
- Now parsing all response types as some non-200 responses provide important information, this means no more exception raising (Alex Vollmer)
- 1 minor bug fix
- added explicit require of time as Time#parse failed outside of rails (willcodeforfoo)
- 1 major enhancement
- Add command line interface to HTTParty (Alex Vollmer)
- 1 bug fix
- Fixed that mimetype detection was failing if no mimetype was returned from service (skippy)
- 1 bug fix
- Fixed typecasting class variable naming issue
- 1 bug fix
- Added the missing core extension hash method to_xml_attributes
- 1 bug fix
- Fixed that HTTParty was borking ActiveSupport and as such Rails (thanks to Rob Sanheim)
- 1 major enhancement
- Removed ActiveSupport as a dependency. Now requires json gem for json deserialization and uses an included class to do the xml parsing.
- 3 major enhancements
- Moved base_uri normalization into request class and out of httparty module, fixing the problem where base_uri was not always being normalized.
- Stupid simple support for HTTParty.get/post/put/delete. (jqr)
- Switched gem management to Echoe from newgem.
- 1 major enhancement
- fixed multiple class definitions overriding each others options
- 1 major enhancement
- now passing :query to set_form_data if post request to avoid content length errors
- 2 major enhancements
- Refactored send request method out into its own object.
- Added :html format if you just want to do that.
- 3 major enhancements:
- Removed some cruft
- Added ability to follow redirects automatically and turn that off (Alex Vollmer)
- 3 major enhancements:
- Added http_proxy key for setting proxy server and port (francxk@gmail.com)
- Now raises exception when http error occurs (francxk@gmail.com)
- Changed auto format detection from file extension to response content type (Jay Pignata)
- 1 major enhancement:
- default_params were not being appended to query string if option[:query] was blank
- 2 major enhancement:
- Added :basic_auth key for options when making a request
- :query and :body both now work with query string or hash
- 1 major enhancement:
- Initial release