================================================== Changes from 2016-08-16 00:00:00 +0000 to present. ================================================== ------------------------------------------- version 1.0100 at 2026-08-14 04:19:17 +0000 ------------------------------------------- Change: e8e7ebfea48b4328933da9cf26d8683d160a0ab1 Author: Dean Hamstead Date : 2026-07-31 01:01:42 +0000 feat: add head and options HTTP methods (#38) * feat: add head and options HTTP methods * test: add tests for head and options verbs * docs: improve POD, fix broken examples, update verb lists * refactor: consolidate verb methods into _request_with_params and _encode_params Change: 24390bd523c0493a531863d2efa5b76897e5c150 Author: Dean Hamstead Date : 2026-07-06 00:46:10 +0000 refactor: consolidate headers handling into _headers and _headers_content_type Change: f47c8bd368e59f7642354e364a5c83a9f466dffb Author: Dean Hamstead Date : 2026-07-06 00:46:10 +0000 fix: stop sending Content-Type header on GET requests Change: a2ba104c312d9faf1fd4ac217f4bf0315a74c5b2 Author: Dean Hamstead Date : 2026-07-06 00:46:10 +0000 test: verify all HTTP methods do not mutate caller arguments Uses Clone + is_deeply to snapshot inputs before each method call and compare after. Covers get, post, put, patch, delete. Change: 2040e521c79166ad453f17f5cd76261628c22ba4 Author: Dean Hamstead Date : 2026-07-02 11:28:49 +0000 fix: stop sending Content-Type header on DELETE requests DELETE requests have no body, so sending Content-Type is incorrect and rejected by some APIs. This is a breaking change -- callers that relied on the old behavior must set Content-Type explicitly via the headers argument. Change: 31a4c80e9fa96ff8e6c1802012a2b98fe5340f7c Author: Dean Hamstead Date : 2026-06-27 12:58:48 +0000 Update README.md and Makefile.PL Change: a81303e325319cfff1bd1f201988330c87b7a2bb Author: Dean Hamstead Date : 2026-06-27 12:58:48 +0000 ci: add GitHub Actions workflow for dzil test Change: 907960582728121b1c799a32230d7b81e0deeb46 Author: Dean Hamstead Date : 2026-06-27 12:58:48 +0000 fix: restore headers propagation broken by _headers // change Change: 019f25d3b6458a57696ecef112d26a713e30ea68 Author: Dean Hamstead Date : 2026-06-26 14:20:52 +0000 fix: guard Response type-check against non-object values Change: cfdcafe6ad3bea7fe50d194bfa65cff7c6df5588 Author: Dean Hamstead Date : 2026-06-26 00:55:30 +0000 Use defined-or instead of logical-or for default headers ||= replaced undef, 0, and '' with {} silently, hiding invalid non-hashref values from the is_plain_hashref validation croak. Changed to // which only replaces undef, allowing invalid values like 0 and '' to properly produce an error. Change: 2519adc310e18a92013cc9e44471f658ad5bb215 Author: Dean Hamstead Date : 2026-06-25 22:26:08 +0000 fix: use PATCH from HTTP::Request::Common - Import PATCH from HTTP::Request::Common - Rewrite patch method to match post/put pattern - Bump HTTP::Message minimum from 6.06 to 6.13 - Add test verifying method, URL, Content-Type, and body - Expand =head2 patch POD with signature and example Change: 1ec7fbdb8b911fb0d9f2a5e6c8ecdfa856cceceb Author: Dean Hamstead Date : 2026-06-25 22:22:12 +0000 Fix loose _url regex allowing http-prefixed paths to bypass base_url The regex /^http/ matched any path starting with 'http' (e.g. 'http:/evil.com/api'), treating it as an absolute URL and bypassing base_url. Tightened to m{^https?://} so only valid scheme-prefixed URLs are treated as absolute. Change: 76c96e2772fd45b666daf79ba99ec4ae5a89563d Author: Dean Hamstead Date : 2026-06-25 21:24:17 +0000 Use decoded_content instead of content in default deserializer Switch from ->content to ->decoded_content so that Content-Encoding (e.g. gzip) is properly handled before JSON deserialization. Without this, gzipped response bodies would be passed as raw compressed bytes to the JSON decoder, causing a parse failure. Also adds a test with a gzipped response to cover this path. Consistent with WebService::Client::Response::data() which already uses decoded_content (commit d133246). Change: 2c49537f167712a523c3e18745a99f2d82cd1be8 Author: Dean Hamstead Date : 2026-06-25 21:22:50 +0000 Fix each() iterator corruption in _php_params Replace each() with keys() + index to avoid corrupting the hash's internal iterator. When _php_params was called on a hashref that was also being externally iterated with each(), the two iterators would interfere, causing skipped keys and wrong query strings. Change: 12070a010dfb7d84811f797c1d1bf900555d659f Author: Dean Hamstead Date : 2026-06-25 01:23:02 +0000 Fix #25 - URL-encode query params in get(), add array_query_style attribute - Replace manual query string building with URI->query_form_hash for proper RFC 3986 encoding - Add array_query_style attribute (default 'php', option 'rfc') to control how array params are serialized in query strings - Use Ref::Util::is_plain_* instead of bare ref eq checks - Document array_query_style in POD - Expand test coverage for both param styles Change: f44b7afcdc9304e4a07550b1cff424b7cef9b6b4 Author: Nicolas R Date : 2020-11-05 20:43:57 +0000 Add Test::LWP::UserAgent to TestRequires Change: bda2c08d624930acd9cf89458c8e4918c20be787 Author: Nicolas R Date : 2020-11-05 20:41:52 +0000 Add a basic .gitignore file Change: dc19d609ab78e7afde772fb4e4a6fb93e193bbc4 Author: Nicolas R Date : 2020-11-05 20:41:06 +0000 Avoid cruft files in release Note that the last release 1.0001 includes files like foo.pl and stocks.pl. These files should not have been part of the tarball as they are not versionned in git. Switch to Git::GatherDir to avoid such mistakes in the future. Change: b9c286dc6a80a8d9ca0f73dfa98ad09a671549ba Author: Nicolas R Date : 2020-10-22 01:48:54 +0000 Use some colors for README.md use Perl syntax highlighting when possible Change: 4a79563ed493b02688f767697a518df47d719621 Author: Naveed Massjouni Date : 2020-07-05 16:20:44 +0000 Fix #20 deserializer typo in POD documentation ------------------------------------------- version 1.0001 at 2020-04-08 04:17:18 +0000 ------------------------------------------- Change: 8fc9dc47c82cf792d28360d52b7424bd2e4c5b1c Author: Naveed Massjouni Date : 2020-04-08 00:17:18 +0000 v1.0001 Change: d13324674f010a713a13af4e9a743d9720995b5b Author: Naveed Massjouni Date : 2020-04-08 00:13:35 +0000 Get the decoded_content of the http response in v2 mode Change: 8ce8aa6ace3638d2c63e60d36ad487db37d0e5bd Author: Naveed Massjouni Date : 2020-04-07 22:22:36 +0000 Add an example of how to use the v2 mode ------------------------------------------- version 1.0000 at 2020-04-08 01:49:43 +0000 ------------------------------------------- Change: a57076bc37dd1916dbc4ba9209ff5b082201e8db Author: Naveed Massjouni Date : 2020-04-07 21:49:43 +0000 v1.0000 Change: 69b2cf1de001eddb6c13a9326b55be8341711d37 Author: Naveed Massjouni Date : 2019-11-04 19:28:04 +0000 Update README and Makefile Change: 335e2f1886cdb2c5b6229f8d8a3f4760ff034dbe Author: Naveed Massjouni Date : 2019-11-04 16:25:16 +0000 Add ok() method to Response class Change: f0c573987142d3418965440f03a2ffac96eac508 Author: Naveed Massjouni Date : 2019-11-04 16:24:45 +0000 Set the default mode to be an empty string Change: 7483f92e5cdc8cb006ad4cbea4cd91b3752eb32d Author: Naveed Massjouni Date : 2019-10-30 16:53:58 +0000 Add a new operating mode that always returns a response object (#19) This is to address issue #11. djzort suggested adding a mode where the http response is always returned. Change: 2cc9f986ed2d1889f0ea2718c1bfffef4e0c64b2 Author: Naveed Massjouni Date : 2019-10-26 14:43:09 +0000 Merge pull request #16 from ZipRecruiter/nawglan/authordeps add authordep entries in dist.ini for missing development requires. Change: 46cff5dab359d38e0ba20c77e757c7c9a39cc153 Author: Naveed Massjouni Date : 2019-10-26 14:40:40 +0000 Merge pull request #17 from ZipRecruiter/add-test-for-get Adds a test for successful path GET functionality, including deserial… Change: 0f89f68a186b10dd9692e16af433fdfae49d1d1a Author: Naveed Massjouni Date : 2019-04-03 15:01:54 +0000 Merge pull request #15 from ZipRecruiter/kwalitee-minimumperl Add [MinimumPerl] to dist.ini Change: 923f98d84dbfaa46d5d54033dba2a8f3b3574de7 Author: Naveed Massjouni Date : 2019-04-03 10:08:44 +0000 Merge pull request #14 from ZipRecruiter/kwalitee-provides Add [MetaProvides::Package] to dist.ini Change: 4203d86199fe04f14c628980de62b4690892ca07 Author: nalabelle Date : 2018-07-18 20:11:44 +0000 Adds a test for successful path GET functionality, including deserialization into list Change: 1a0de516b88a550757f95dd49df5cc6949e9c537 Author: Desmond Daignault Date : 2018-07-18 21:46:59 +0000 add authordep entries in dist.ini for missing development requires. Change: 06bde4856347f02a147183cc0a282d7dccaead02 Author: Kivanc Yazan Date : 2018-07-18 18:38:39 +0000 Add [MetaProvides::Package] to dist.ini Without it, META.yml file is missing {provides}, which was reported as an "experimental issue" at https://cpants.cpanauthors.org/dist/WebService-Client Change: 9cce32c5ca91f756e3d7a0eb0f06798cdd24f68d Author: Kivanc Yazan Date : 2018-07-18 18:29:55 +0000 Add [MinimumPerl] to dist.ini Without it, META.yml file is missing {requires}{perl}, which was reported as an "extra issue" at https://cpants.cpanauthors.org/dist/WebService-Client ------------------------------------------- version 0.0601 at 2017-06-08 19:41:46 +0000 ------------------------------------------- Change: 0702964927fbd2eca02ed81d8c869f9fcb4791ee Author: Naveed Massjouni Date : 2017-06-08 15:41:46 +0000 v0.0601 Change: a86219e52830ddddad430beecca5dea4a8599d3e Author: Naveed Massjouni Date : 2017-06-08 15:39:18 +0000 Fix #13, a json bug. ------------------------------------------- version 0.0600 at 2017-06-02 17:49:44 +0000 ------------------------------------------- Change: abead5f53270b3c68d7c35688075ed20ce319058 Author: Naveed Massjouni Date : 2017-06-02 13:49:44 +0000 v0.0600 Change: 680e0cbcd6b8647dede2ec51c735d657d1ab52c3 Author: Naveed Massjouni Date : 2017-06-01 10:05:15 +0000 Merge pull request #12 from djzort/json_object Use a JSON object Change: 99adcec2638b7dde6ab46354d9682d848781f1b0 Author: Dean Hamstead Date : 2017-06-01 21:13:27 +0000 Use a json object, so it can be tweaked. Inspired by https://github.com/ironcamel/WebService-Client/pull/1 Change: 515233834f2cb257b4eda7c6eedb47ae8e29f47a Author: Dean Hamstead Date : 2017-06-01 21:12:35 +0000 Some suggestions only Change: 270b4e77cda0ee03898143c6edfa2ec0e91b0d15 Author: Dean Hamstead Date : 2017-06-01 20:44:40 +0000 Bump year Change: 4c896c03328f2e43edff98a716cd794550d8f5a0 Author: Naveed Massjouni Date : 2017-04-26 10:16:46 +0000 v0.0502 Change: b349c3555fc9d5ec367d1077cc439e8236e64c65 Author: Naveed Massjouni Date : 2017-04-26 10:09:48 +0000 Merge pull request #10 from ByteFoundryAU/master use JSON::MaybeXS, this means JSON can go faster Change: 8b5ff5fb2b87998c983e84db8cb3501b31f47c4c Author: Dean Hamstead Date : 2017-04-26 08:20:08 +0000 use JSON::MaybeXS, this means JSON can go faster Change: cb77e11a9ef475abdec69f2be270b21ae0c94946 Author: Naveed Massjouni Date : 2015-12-16 04:01:11 +0000 Merge pull request #9 from ironcamel/validate-retries validate that retries is a nonnegative int Change: 7da3fef8d44008b78080151b9ae8fa26c83a8311 Author: Naveed Massjouni Date : 2015-12-16 03:49:32 +0000 validate that retries is a nonnegative int ================================================ Plus 9 releases after 2016-08-16 00:00:00 +0000. ================================================