PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.7
Booking for Appointments and Events Calendar – Amelia v2.4.7
2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / rmccue / requests / CHANGELOG.md
ameliabooking / vendor / rmccue / requests Last commit date
certificates 6 months ago library 6 months ago scripts 6 months ago src 6 months ago CHANGELOG.md 6 months ago LICENSE 4 years ago README.md 6 months ago composer.json 6 months ago
CHANGELOG.md
1158 lines
1 Changelog
2 =========
3
4 2.0.17
5 ------
6
7 ### Overview of changes
8 - Update bundled certificates as of 2025-12-02. [#1000]
9 - General housekeeping.
10
11 [#1000]: https://github.com/WordPress/Requests/pull/1000
12
13 2.0.16
14 ------
15
16 ### Overview of changes
17 - Update bundled certificates as of 2025-11-04. [#954]
18 - Fixed: PHP 8.5 deprecation notices for `Reflection*::setAccessible()` [#940]
19 - Fixed: PHP 8.5 deprecation notices for `curl_close()` [#947] Props [@TobiasBg][gh-TobiasBg]
20 - Fixed: PHP 8.5 deprecation notices `Using null as an array offset` [#956]
21 - Fixed: Disallow `FilteredIterator` to accept objects (PHP 8.5 deprecation). [#968]
22 Note: This is technically a breaking change as this was documented behaviour. However, `FilteredIterator` is an internal class and the only detected use of this behavior was in a test.
23 - Fixed: tests for expired and revoked SSL certificates. [#967]
24 - Composer: remove `roave/security-advisories` (no longer needed with Composer 2.9+). [#961]
25 - README: corrected Python Requests library URL. [#944] Props [@pmbaldha][gh-pmbaldha]
26 - General housekeeping.
27
28 [#940]: https://github.com/WordPress/Requests/pull/940
29 [#944]: https://github.com/WordPress/Requests/pull/944
30 [#947]: https://github.com/WordPress/Requests/pull/947
31 [#954]: https://github.com/WordPress/Requests/pull/954
32 [#956]: https://github.com/WordPress/Requests/pull/956
33 [#961]: https://github.com/WordPress/Requests/pull/961
34 [#967]: https://github.com/WordPress/Requests/pull/967
35 [#968]: https://github.com/WordPress/Requests/pull/968
36
37 2.0.15
38 ------
39
40 ### Overview of changes
41 - Update bundled certificates as of 2024-12-31. [#919]
42 - General housekeeping.
43
44 [#919]: https://github.com/WordPress/Requests/pull/919
45
46 2.0.14
47 ------
48
49 ### Overview of changes
50 - Update bundled certificates as of 2024-11-26. [#910]
51 - Confirmed compatibility with PHP 8.4.
52 No new changes were needed, so Request 2.0.11 and higher can be considered compatible with PHP 8.4.
53 - Various other general housekeeping.
54
55 [#910]: https://github.com/WordPress/Requests/pull/910
56
57 2.0.13
58 ------
59
60 ### Overview of changes
61 - Update bundled certificates as of 2024-09-24. [#900]
62 - Various minor documentation improvements and other general housekeeping.
63
64 [#900]: https://github.com/WordPress/Requests/pull/900
65
66 2.0.12
67 ------
68
69 ### Overview of changes
70 - Update bundled certificates as of 2024-07-02. [#877]
71
72 [#877]: https://github.com/WordPress/Requests/pull/877
73
74 2.0.11
75 ------
76
77 ### Overview of changes
78 - Update bundled certificates as of 2024-03-11. [#864]
79 - Fixed: PHP 8.4 deprecation of the two parameter signature of `stream_context_set_option()`. [#822] Props [@jrfnl][gh-jrfnl]
80 - Fixed: PHP 8.4 deprecation of implicitly nullable parameter. [#865] Props [@Ayesh][gh-ayesh], [@jrfnl][gh-jrfnl]
81 Note: this fix constitutes an, albeit small, breaking change to the signature of the `Cookie::parse_from_headers()` method.
82 Classes which extend the `Cookie` class and overload the `parse_from_headers()` method should be updated for the new method signature.
83 Additionally, if code calling the `Cookie::parse_from_headers()` method would be wrapped in a `try - catch` to catch a potential PHP `TypeError` (PHP 7.0+) or `Exception` (PHP < 7.0) for when invalid data was passed as the `$origin` parameter, this code will need to be updated to now also catch a potential `WpOrg\Requests\Exception\InvalidArgumentException`.
84 As due diligence could not find any classes which would be affected by this BC-break, we have deemed it acceptable to include this fix in the 2.0.11 release.
85
86 [#822]: https://github.com/WordPress/Requests/pull/822
87 [#864]: https://github.com/WordPress/Requests/pull/864
88 [#865]: https://github.com/WordPress/Requests/pull/865
89
90 2.0.10
91 ------
92
93 ### Overview of changes
94 - Update bundled certificates as of 2023-12-04. [#850]
95
96 [#850]: https://github.com/WordPress/Requests/pull/850
97
98 2.0.9
99 -----
100
101 ### Overview of changes
102 - Hotfix: Rollback changes from PR [#657]. [#839] Props [@tomsommer][gh-tomsommer] & [@laszlof][gh-laszlof]
103
104 [#839]: https://github.com/WordPress/Requests/pull/839
105
106 2.0.8
107 -----
108
109 ### Overview of changes
110 - Update bundled certificates as of 2023-08-22. [#823]
111 - Fixed: only force close cURL connection when needed (cURL < 7.22). [#656], [#657] Props [@mircobabini][gh-mircobabini]
112 - Composer: updated list of suggested PHP extensions to enable. [#821]
113 - README: add information about the PSR-7/PSR-18 wrapper for Requests. [#827]
114
115 [#656]: https://github.com/WordPress/Requests/pull/656
116 [#657]: https://github.com/WordPress/Requests/pull/657
117 [#821]: https://github.com/WordPress/Requests/pull/821
118 [#823]: https://github.com/WordPress/Requests/pull/823
119 [#827]: https://github.com/WordPress/Requests/pull/827
120
121 2.0.7
122 -----
123
124 ### Overview of changes
125 - Update bundled certificates as of 2023-05-30. [#809]
126
127 [#809]: https://github.com/WordPress/Requests/pull/809
128
129 2.0.6
130 -----
131
132 ### Overview of changes
133 - Update bundled certificates as of 2023-01-10. [#791]
134 - Fix typo in deprecation notice. [#785] Props [@costdev][gh-costdev]
135 - Minor internal improvements for passing the correct type to function calls. [#779]
136 - Confirmed compatibility with PHP 8.2.
137 No changes were needed, so Request 2.0.1 and higher can be considered compatible with PHP 8.2.
138 - Various documentation improvements and other general housekeeping.
139
140 [#779]: https://github.com/WordPress/Requests/pull/779
141 [#785]: https://github.com/WordPress/Requests/pull/785
142 [#791]: https://github.com/WordPress/Requests/pull/791
143
144 2.0.5
145 -----
146
147 ### Overview of changes
148 - Update bundled certificates as of 2022-10-11. [#769]
149
150 [#769]: https://github.com/WordPress/Requests/pull/769
151
152 2.0.4
153 -----
154
155 ### Overview of changes
156 - Update bundled certificates as of 2022-07-19. [#763]
157
158 [#763]: https://github.com/WordPress/Requests/pull/763
159
160 2.0.3
161 -----
162
163 ### Overview of changes
164 - Update bundled certificates as of 2022-04-26. [#731]
165
166 [#731]: https://github.com/WordPress/Requests/pull/731
167
168 2.0.2
169 -----
170
171 ### Overview of changes
172 - Update bundled certificates as of 2022-03-18. [#697]
173
174 [#697]: https://github.com/WordPress/Requests/pull/697
175
176 2.0.1
177 -----
178
179 ### Overview of changes
180 - Update bundled certificates as of 2022-02-01. [#670]
181 - Bug fix: Hook priority should be respected. [#452], [#647]
182 - Docs: the Hook documentation has been updated to reflect the current available hooks. [#646]
183 - General housekeeping. [#635], [#649], [#650], [#653], [#655], [#658], [#660], [#661], [#662], [#669], [#671], [#672], [#674]
184
185 Props [@alpipego][gh-alpipego], [@costdev][gh-costdev], [@jegrandet][gh-jegrandet], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera]
186
187 [#674]: https://github.com/WordPress/Requests/pull/674
188 [#672]: https://github.com/WordPress/Requests/pull/672
189 [#671]: https://github.com/WordPress/Requests/pull/671
190 [#670]: https://github.com/WordPress/Requests/pull/670
191 [#669]: https://github.com/WordPress/Requests/pull/669
192 [#662]: https://github.com/WordPress/Requests/pull/662
193 [#661]: https://github.com/WordPress/Requests/pull/661
194 [#660]: https://github.com/WordPress/Requests/pull/660
195 [#658]: https://github.com/WordPress/Requests/pull/658
196 [#655]: https://github.com/WordPress/Requests/pull/655
197 [#653]: https://github.com/WordPress/Requests/pull/653
198 [#650]: https://github.com/WordPress/Requests/pull/650
199 [#649]: https://github.com/WordPress/Requests/pull/649
200 [#647]: https://github.com/WordPress/Requests/pull/647
201 [#646]: https://github.com/WordPress/Requests/pull/646
202 [#635]: https://github.com/WordPress/Requests/issues/635
203 [#452]: https://github.com/WordPress/Requests/issues/452
204
205
206 2.0.0
207 -----
208
209 ### BREAKING CHANGES
210
211 As Requests 2.0.0 is a major release, this version contains breaking changes. There is an [](https://requests.ryanmccue.info/docs/upgrading.htmlupgrade guide](https://requests.ryanmccue.info/docs/upgrading.html](https://requests.ryanmccue.info/docs/upgrading.html) available to guide you through making the necessary changes in your own code.
212
213 ### Overview of changes
214
215 - **New minimum PHP version**
216
217 Support for PHP 5.2 - 5.5 has been dropped. The new minimum supported PHP version is now 5.6.
218
219 Support for HHVM has also been dropped formally now.
220
221 (props [@datagutten][gh-datagutten], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#378][gh-378], [#470][gh-470], [#509][gh-509])
222
223 - **New release branch name**
224
225 The stable version of Requests can be found in the `stable` branch (was `master`).
226 Development of Requests happens in the `develop` branch.
227
228 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#463][gh-463], [#490][gh-490])
229
230 - **All code is now namespaced (PSR-4)**
231
232 The code within the Requests library has all been namespaced and now lives in the `WpOrg\Requests` namespace.
233
234 The namespaced classes can be found in the `src` directory. The old `library` directory and the files within are deprecated.
235
236 For a number of classes, some subtle changes have also been made to their base class name, like renaming the `Hooker` interface to `HookManager`.
237
238 A full backward-compatibility layer is available and using the non-namespaced class names will still work during the 2.x and 3.x release cycles, though a deprecation notice will be thrown the first time a class using one of the old PSR-0 based class names is requested.
239 For the lifetime of Requests 2.x, the deprecation notices can be disabled by defining a global `REQUESTS_SILENCE_PSR0_DEPRECATIONS` constant and
240 setting the value of this constant to `true`.
241
242 A complete "translation table" between the Requests 1.x and 2.x class names is available in the [](https://requests.ryanmccue.info/docs/upgrading.htmlupgrade guide](https://requests.ryanmccue.info/docs/upgrading.html](https://requests.ryanmccue.info/docs/upgrading.html).
243
244 Users of the Requests native custom autoloader will need to adjust their code to initialize the autoloader:
245 ```php
246 // OLD: Using the custom autoloader in Requests 1.x.
247 require_once 'path/to/Requests/library/Requests.php';
248 Requests::register_autoloader();
249
250 // NEW: Using the custom autoloader in Requests 2.x.
251 require_once 'path/to/Requests/src/Autoload.php';
252 WpOrg\Requests\Autoload::register();
253 ```
254
255 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#503][gh-503], [#519][gh-519], [#586][gh-586], [#587][gh-587], [#594][gh-594])
256
257 - **A large number of classes have been marked as `final`**
258
259 Marking a class as `final` prohibits extending it.
260
261 These changes were made after researching which classes were being extended in userland code and due diligence has been applied before making these changes. If this change is causing a problem we didn't anticipate, please [](https://github.com/WordPress/Requests/issues/new/chooseopen an issue to report it](https://github.com/WordPress/Requests/issues/new/choose](https://github.com/WordPress/Requests/issues/new/choose).
262
263 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#514][gh-514], [#534][gh-534])
264
265 - **Input validation**
266
267 All typical entry point methods in Requests will now, directly or indirectly, validate the received input parameters for being of the correct type.
268 When an incorrect parameter type is received, a catchable `WpOrg\Requests\Exception\InvalidArgument` exception will be thrown.
269
270 The input validation has been set up to be reasonably liberal, so if Requests was being used as per the documentation, this change should not affect you.
271 If you still find the input validation to be too strict and you have a good use-case of why it should be loosened for a particular entry point, please [](https://github.com/WordPress/Requests/issues/new/chooseopen an issue to discuss this](https://github.com/WordPress/Requests/issues/new/choose](https://github.com/WordPress/Requests/issues/new/choose).
272
273 The code within Requests itself has also received various improvements to be more type safe.
274
275 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#499][gh-499], [#542][gh-542], [#547][gh-547], [#558][gh-558], [#572][gh-572], [#573][gh-573], [#574][gh-574], [#591][gh-591], [#592][gh-592], [#593][gh-593], [#601][gh-601], [#602][gh-602], [#603][gh-603], [#604][gh-604], [#605][gh-605], [#609][gh-609], [#610][gh-610], [#611][gh-611], [#613][gh-613], [#614][gh-614], [#615][gh-615], [#620][gh-620], [#621][gh-621], [#629][gh-629])
276
277 - **Update bundled certificates**
278
279 The bundled certificates were updated with the latest version available (published 2021-10-26).
280
281 Previously the bundled certificates in Requests would include a small subset of expired certificates for legacy reasons.
282 This is no longer the case as of Requests 2.0.0.
283
284 > :warning: **Note**: the included certificates bundle is only intended as a fallback.
285 >
286 > This fallback should only be used for servers that are not properly configured for SSL verification. A continuously managed server should provide a more up-to-date certificate authority list than a software library which only gets updates once in a while.
287 >
288 > Setting the `$options['verify']` key to `true` when initiating a request enables certificate verification using the certificate authority list provided by the server environment, which is recommended.
289
290 The [](https://requests.ryanmccue.info/docs/usage-advanced.html#secure-requests-with-ssldocumentation regarding Secure Requests with SSL](https://requests.ryanmccue.info/docs/usage-advanced.html#secure-requests-with-ssl](https://requests.ryanmccue.info/docs/usage-advanced.html#secure-requests-with-ssl) has also been updated to reflect this and it is recommended to have a read through.
291
292 The included certificates _file_ has now also been moved to a dedicated `/certificates` directory off the project root.
293
294 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [@wojsmol][gh-wojsmol], [@ZsgsDesign][gh-ZsgsDesign], [#535][gh-535], [#571][gh-571], [#577][gh-577], [#622][gh-622], [#632][gh-632])
295
296 - **New functionality**
297
298 The following new functionality has been added:
299 - A `public static` `WpOrg\Requests\Requests::has_capabilities($capabilities = array())` method is now available to check whether there is a transport available which supports the requested capabilities.
300 - A `public` `WpOrg\Requests\Response::decode_body($associative = true, $depth = 512, $options = 0)` method is now available to handle JSON-decoding a response body.
301 The method parameters correspond to the parameters of the PHP native [](https://php.net/json-decode`json_decode()`](https://php.net/json-decode](https://php.net/json-decode) function.
302 The method will throw an `WpOrg\Requests\Exception` when the response body is not valid JSON.
303 - A `WpOrg\Requests\Capability` interface. This interface provides constants for the known capabilities. Transports can be tested whether or not they support these capabilities.
304 Currently, the only capability supported is `Capability::SSL`.
305 - A `WpOrg\Requests\Port` class. This class encapsulates typical port numbers as constants and offers a `static` `Port::get($type)` method to retrieve a port number based on a request type.
306 Using this class when referring to port numbers is recommended.
307 - An `WpOrg\Requests\Exceptions\InvalidArgument` class. This class is intended for internal use only.
308 - An `WpOrg\Requests\Utility\InputValidator` class with helper methods for input validation. This class is intended for internal use only.
309
310 (props [@ccrims0n][gh-ccrims0n], [@dd32][gh-dd32], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#167][gh-167], [#214][gh-214], [#250][gh-250], [#251][gh-251], [#492][gh-492], [#499][gh-499], [#538][gh-538], [#542][gh-542], [#547][gh-547], [#559][gh-559])
311
312 - **Changed functionality**
313
314 - The `WpOrg\Requests\Requests::decompress()` method has been fixed to recognize more compression levels and handle these correctly.
315 - The method signature of the `WpOrg\Requests\Transport::test()` interface method has been adjusted to enforce support for an optional `$capabilities` parameter.
316 The Request native `WpOrg\Requests\Transport\Curl::test()` and `WpOrg\Requests\Transport\Fsockopen::test()` methods both already supported this parameter.
317 - The `WpOrg\Requests\Transport\Curl::request()` and the `WpOrg\Requests\Transport\Fsockopen::request()` methods will now throw an `WpOrg\Requests\Exception` when the `$options['filename']` contains an invalid path.
318 - The `WpOrg\Requests\Transport\Curl::request()` method will no longer set the `CURLOPT_REFERER` option.
319 - The default value of the `$key` parameter in the `WpOrg\Requests\Cookie\Jar::normalize_cookie()` method has been changed from `null` to an empty string.
320
321 (props [@datagutten][gh-datagutten], [@dustinrue][gh-dustinrue], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [@soulseekah][gh-soulseekah], [@twdnhfr][gh-twdnhfr], [#301][gh-301], [#309][gh-309], [#379][gh-379], [#444][gh-444], [#492][gh-492], [#610][gh-610])
322
323 - **Removed functionality**
324
325 The following methods, which were deprecated during the 1.x cycle, have now been removed:
326 - `Requests::flattern()`, use `WpOrg\Requests\Requests::flatten()` instead.
327 - `Requests_Cookie::formatForHeader()`, use `WpOrg\Requests\Cookie::format_for_header()` instead.
328 - `Requests_Cookie::formatForSetCookie()`, use `WpOrg\Requests\Cookie::format_for_set_cookie()` instead.
329 - `Requests_Cookie::parseFromHeaders()`, use `WpOrg\Requests\Cookie::parse_from_headers()` instead.
330 - `Requests_Cookie_Jar::normalizeCookie()`, use `WpOrg\Requests\Cookie\Jar::normalize_cookie()` instead
331
332 A duplicate method has been removed:
333 - `Requests::match_domain()`, use `WpOrg\Requests\Ssl::match_domain()` instead.
334
335 A redundant method has been removed:
336 - `Hooks::__construct()`.
337
338 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#510][gh-510], [#525][gh-525], [#617][gh-617])
339
340 - **Compatibility with PHP 8.0 named parameters**
341
342 All parameter names have been reviewed to prevent issues for users using PHP 8.0 named parameters and where relevant, a number of parameter names have been changed.
343
344 After this release, a parameter name rename will be treated as a breaking change (reserved for major releases) and will be marked as such in the changelog.
345
346 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#533][gh-533], [#560][gh-560], [#561][gh-561], [#599][gh-599], [#612][gh-612])
347
348 - **PHP 8.1 compatibility**
349
350 All known PHP 8.1 compatibility issues have been fixed and tests are now running (and passing) against PHP 8.1.
351
352 In case you still run into a PHP 8.1 deprecation notice or other PHP 8.1 related issue, please [](https://github.com/WordPress/Requests/issues/new/chooseopen an issue to report it](https://github.com/WordPress/Requests/issues/new/choose](https://github.com/WordPress/Requests/issues/new/choose).
353
354 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#498][gh-498], [#499][gh-499], [#500][gh-500], [#501][gh-501], [#505][gh-505], [#634][gh-634])
355
356 - **Updated documentation**
357
358 The [](https://requests.ryanmccue.info/documentation website](https://requests.ryanmccue.info/](https://requests.ryanmccue.info/) has been updated to reflect all the changes in Requests 2.0.0.
359
360 The [](https://requests.ryanmccue.info/api-2.x/API documentation for Requests 2.x](https://requests.ryanmccue.info/api-2.x/](https://requests.ryanmccue.info/api-2.x/) is now generated using [](https://www.phpdoc.org/phpDocumentor](https://www.phpdoc.org/](https://www.phpdoc.org/) :heart: and available on the website.
361 For the time being, the [](https://requests.ryanmccue.info/api/Requests 1.x API documentation](https://requests.ryanmccue.info/api/](https://requests.ryanmccue.info/api/) will still be available on the website as well.
362
363 (props [@costdev][gh-costdev], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [@szepeviktor][gh-szepeviktor], [#476][gh-476], [#480][gh-480], [#489][gh-489], [#495][gh-495], [#526][gh-526], [#528][gh-528], [#532][gh-532], [#543][gh-543], [#562][gh-562], [#578][gh-578], [#590][gh-590], [#606][gh-606], [#607][gh-607], [#608][gh-608], [#618][gh-618], [#622][gh-622], [#625][gh-625], [#626][gh-626], [#630][gh-630], [#642][gh-642])
364
365 - **General housekeeping**
366
367 - In a number of places, code modernizations, possible now the minimum PHP version has gone up to PHP 5.6, have been applied.
368 ([#504][gh-504], [#506][gh-506], [#512][gh-512], [#539][gh-539], [#541][gh-541], [#599][gh-599], [#623][gh-623])
369
370 - Lots of improvements were made to render the tests more reliable and increase the coverage.
371 ([#446][gh-446], [#459][gh-459], [#472][gh-472], [#503][gh-503], [#508][gh-508], [#511][gh-511], [#520][gh-520], [#521][gh-521], [#548][gh-548], [#549][gh-549], [#550][gh-550], [#551][gh-551], [#552][gh-552], [#553][gh-553], [#554][gh-554], [#555][gh-555], [#556][gh-556], [#557][gh-557], [#558][gh-558], [#566][gh-566], [#581][gh-581], [#591][gh-591], [#595][gh-595], [#640][gh-640])
372
373 - The move for all CI to GitHub Actions has been finalized. Travis is dead, long live Travis and thanks for all the fish.
374 ([#447][gh-447], [#575][gh-575], [#579][gh-579])
375
376 - A GitHub Actions workflow has been put in place to allow for automatically updating the website on releases.
377 This should allow for more rapid releases from now on.
378 ([#466][gh-466], [#544][gh-544], [#545][gh-545], [#563][gh-563], [#569][gh-569], [#583][gh-583], [#626][gh-626])
379
380 - Development-only dependencies have been updated.
381 ([#516][gh-516], [#517][gh-517])
382
383 - Various other general housekeeping and improvements for contributors.
384 ([#488][gh-488], [#491][gh-491], [#523][gh-523], [#513][gh-513], [#515][gh-515], [#522][gh-522], [#524][gh-524], [#531][gh-531], [#535][gh-535], [#536][gh-536], [#537][gh-537], [#540][gh-540], [#588][gh-588], [#616][gh-616])
385
386 (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera])
387
388 [gh-642]: https://github.com/WordPress/Requests/pull/642
389 [gh-640]: https://github.com/WordPress/Requests/pull/640
390 [gh-634]: https://github.com/WordPress/Requests/pull/634
391 [gh-632]: https://github.com/WordPress/Requests/pull/632
392 [gh-630]: https://github.com/WordPress/Requests/pull/630
393 [gh-629]: https://github.com/WordPress/Requests/pull/629
394 [gh-626]: https://github.com/WordPress/Requests/pull/626
395 [gh-625]: https://github.com/WordPress/Requests/pull/625
396 [gh-623]: https://github.com/WordPress/Requests/pull/623
397 [gh-622]: https://github.com/WordPress/Requests/pull/622
398 [gh-621]: https://github.com/WordPress/Requests/pull/621
399 [gh-620]: https://github.com/WordPress/Requests/pull/620
400 [gh-618]: https://github.com/WordPress/Requests/pull/618
401 [gh-617]: https://github.com/WordPress/Requests/pull/617
402 [gh-616]: https://github.com/WordPress/Requests/pull/616
403 [gh-615]: https://github.com/WordPress/Requests/pull/615
404 [gh-614]: https://github.com/WordPress/Requests/pull/614
405 [gh-613]: https://github.com/WordPress/Requests/pull/613
406 [gh-612]: https://github.com/WordPress/Requests/pull/612
407 [gh-611]: https://github.com/WordPress/Requests/pull/611
408 [gh-610]: https://github.com/WordPress/Requests/pull/610
409 [gh-609]: https://github.com/WordPress/Requests/pull/609
410 [gh-608]: https://github.com/WordPress/Requests/pull/608
411 [gh-607]: https://github.com/WordPress/Requests/pull/607
412 [gh-606]: https://github.com/WordPress/Requests/pull/606
413 [gh-605]: https://github.com/WordPress/Requests/pull/605
414 [gh-604]: https://github.com/WordPress/Requests/pull/604
415 [gh-603]: https://github.com/WordPress/Requests/pull/603
416 [gh-602]: https://github.com/WordPress/Requests/pull/602
417 [gh-601]: https://github.com/WordPress/Requests/pull/601
418 [gh-599]: https://github.com/WordPress/Requests/pull/599
419 [gh-595]: https://github.com/WordPress/Requests/pull/595
420 [gh-594]: https://github.com/WordPress/Requests/pull/594
421 [gh-593]: https://github.com/WordPress/Requests/issues/593
422 [gh-592]: https://github.com/WordPress/Requests/pull/592
423 [gh-591]: https://github.com/WordPress/Requests/pull/591
424 [gh-590]: https://github.com/WordPress/Requests/issues/590
425 [gh-588]: https://github.com/WordPress/Requests/pull/588
426 [gh-587]: https://github.com/WordPress/Requests/pull/587
427 [gh-586]: https://github.com/WordPress/Requests/pull/586
428 [gh-583]: https://github.com/WordPress/Requests/pull/583
429 [gh-581]: https://github.com/WordPress/Requests/pull/581
430 [gh-579]: https://github.com/WordPress/Requests/pull/579
431 [gh-578]: https://github.com/WordPress/Requests/pull/578
432 [gh-577]: https://github.com/WordPress/Requests/pull/577
433 [gh-575]: https://github.com/WordPress/Requests/pull/575
434 [gh-574]: https://github.com/WordPress/Requests/pull/574
435 [gh-573]: https://github.com/WordPress/Requests/pull/573
436 [gh-572]: https://github.com/WordPress/Requests/pull/572
437 [gh-571]: https://github.com/WordPress/Requests/pull/571
438 [gh-569]: https://github.com/WordPress/Requests/pull/569
439 [gh-566]: https://github.com/WordPress/Requests/pull/566
440 [gh-563]: https://github.com/WordPress/Requests/pull/563
441 [gh-562]: https://github.com/WordPress/Requests/pull/562
442 [gh-561]: https://github.com/WordPress/Requests/pull/561
443 [gh-560]: https://github.com/WordPress/Requests/pull/560
444 [gh-559]: https://github.com/WordPress/Requests/pull/559
445 [gh-558]: https://github.com/WordPress/Requests/pull/558
446 [gh-557]: https://github.com/WordPress/Requests/pull/557
447 [gh-556]: https://github.com/WordPress/Requests/pull/556
448 [gh-555]: https://github.com/WordPress/Requests/pull/555
449 [gh-554]: https://github.com/WordPress/Requests/pull/554
450 [gh-553]: https://github.com/WordPress/Requests/pull/553
451 [gh-552]: https://github.com/WordPress/Requests/pull/552
452 [gh-551]: https://github.com/WordPress/Requests/pull/551
453 [gh-550]: https://github.com/WordPress/Requests/pull/550
454 [gh-549]: https://github.com/WordPress/Requests/pull/549
455 [gh-548]: https://github.com/WordPress/Requests/pull/548
456 [gh-547]: https://github.com/WordPress/Requests/pull/547
457 [gh-545]: https://github.com/WordPress/Requests/pull/545
458 [gh-544]: https://github.com/WordPress/Requests/pull/544
459 [gh-543]: https://github.com/WordPress/Requests/pull/543
460 [gh-542]: https://github.com/WordPress/Requests/pull/542
461 [gh-541]: https://github.com/WordPress/Requests/pull/541
462 [gh-540]: https://github.com/WordPress/Requests/pull/540
463 [gh-539]: https://github.com/WordPress/Requests/pull/539
464 [gh-538]: https://github.com/WordPress/Requests/pull/538
465 [gh-537]: https://github.com/WordPress/Requests/pull/537
466 [gh-536]: https://github.com/WordPress/Requests/pull/536
467 [gh-535]: https://github.com/WordPress/Requests/pull/535
468 [gh-534]: https://github.com/WordPress/Requests/pull/534
469 [gh-533]: https://github.com/WordPress/Requests/issues/533
470 [gh-532]: https://github.com/WordPress/Requests/pull/532
471 [gh-531]: https://github.com/WordPress/Requests/pull/531
472 [gh-528]: https://github.com/WordPress/Requests/pull/528
473 [gh-526]: https://github.com/WordPress/Requests/pull/526
474 [gh-525]: https://github.com/WordPress/Requests/pull/525
475 [gh-524]: https://github.com/WordPress/Requests/pull/524
476 [gh-523]: https://github.com/WordPress/Requests/pull/523
477 [gh-522]: https://github.com/WordPress/Requests/pull/522
478 [gh-521]: https://github.com/WordPress/Requests/pull/521
479 [gh-520]: https://github.com/WordPress/Requests/pull/520
480 [gh-519]: https://github.com/WordPress/Requests/pull/519
481 [gh-517]: https://github.com/WordPress/Requests/pull/517
482 [gh-516]: https://github.com/WordPress/Requests/pull/516
483 [gh-515]: https://github.com/WordPress/Requests/issues/515
484 [gh-514]: https://github.com/WordPress/Requests/issues/514
485 [gh-513]: https://github.com/WordPress/Requests/issues/513
486 [gh-512]: https://github.com/WordPress/Requests/issues/512
487 [gh-511]: https://github.com/WordPress/Requests/pull/511
488 [gh-510]: https://github.com/WordPress/Requests/pull/510
489 [gh-509]: https://github.com/WordPress/Requests/pull/509
490 [gh-508]: https://github.com/WordPress/Requests/pull/508
491 [gh-506]: https://github.com/WordPress/Requests/pull/506
492 [gh-505]: https://github.com/WordPress/Requests/pull/505
493 [gh-504]: https://github.com/WordPress/Requests/pull/504
494 [gh-503]: https://github.com/WordPress/Requests/pull/503
495 [gh-501]: https://github.com/WordPress/Requests/pull/501
496 [gh-500]: https://github.com/WordPress/Requests/pull/500
497 [gh-499]: https://github.com/WordPress/Requests/pull/499
498 [gh-498]: https://github.com/WordPress/Requests/issues/498
499 [gh-498]: https://github.com/WordPress/Requests/issues/495
500 [gh-492]: https://github.com/WordPress/Requests/pull/492
501 [gh-491]: https://github.com/WordPress/Requests/pull/491
502 [gh-490]: https://github.com/WordPress/Requests/pull/490
503 [gh-489]: https://github.com/WordPress/Requests/pull/489
504 [gh-488]: https://github.com/WordPress/Requests/pull/488
505 [gh-480]: https://github.com/WordPress/Requests/issues/480
506 [gh-476]: https://github.com/WordPress/Requests/issues/476
507 [gh-472]: https://github.com/WordPress/Requests/issues/472
508 [gh-470]: https://github.com/WordPress/Requests/pull/470
509 [gh-466]: https://github.com/WordPress/Requests/issues/466
510 [gh-463]: https://github.com/WordPress/Requests/issues/463
511 [gh-460]: https://github.com/WordPress/Requests/issues/460
512 [gh-459]: https://github.com/WordPress/Requests/issues/459
513 [gh-447]: https://github.com/WordPress/Requests/pull/447
514 [gh-446]: https://github.com/WordPress/Requests/pull/446
515 [gh-444]: https://github.com/WordPress/Requests/pull/444
516 [gh-379]: https://github.com/WordPress/Requests/pull/379
517 [gh-378]: https://github.com/WordPress/Requests/issues/378
518 [gh-309]: https://github.com/WordPress/Requests/pull/309
519 [gh-301]: https://github.com/WordPress/Requests/issues/301
520 [gh-251]: https://github.com/WordPress/Requests/pull/251
521 [gh-250]: https://github.com/WordPress/Requests/issues/250
522 [gh-214]: https://github.com/WordPress/Requests/pull/214
523 [gh-167]: https://github.com/WordPress/Requests/issues/167
524
525 1.8.1
526 -----
527
528 ### Overview of changes
529 - The `Requests::VERSION` constant has been updated to reflect the actual version for the release. [@jrfnl][gh-jrfnl], [#485][gh-485]
530 - Update the `.gitattributes` file to include fewer files in the distribution. [@mbabker][gh-mbabker], [#484][gh-484]
531 - Added a release checklist. [@jrfnl][gh-jrfnl], [#483][gh-483]
532 - Various minor updates to the documentation and the website. [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#477][gh-477], [#478][gh-478], [#479][gh-479], [#481][gh-481], [#482][gh-482]
533
534 [gh-477]: https://github.com/WordPress/Requests/issues/477
535 [gh-478]: https://github.com/WordPress/Requests/issues/478
536 [gh-479]: https://github.com/WordPress/Requests/issues/479
537 [gh-481]: https://github.com/WordPress/Requests/issues/481
538 [gh-482]: https://github.com/WordPress/Requests/issues/482
539 [gh-483]: https://github.com/WordPress/Requests/issues/483
540 [gh-484]: https://github.com/WordPress/Requests/issues/484
541 [gh-485]: https://github.com/WordPress/Requests/issues/485
542
543
544 1.8.0
545 -----
546
547 ### IMPORTANT NOTES
548
549 #### Last release supporting PHP 5.2 - 5.5
550
551 Release 1.8.0 will be the last release with compatibility for PHP 5.2 - 5.5. With the next release (v2.0.0), the minimum PHP version will be bumped to 5.6.
552
553 #### Last release supporting PEAR distribution
554
555 Release 1.8.0 will be the last release to be distributed via PEAR. From release 2.0.0 onwards, consumers of this library will have to switch to Composer to receive updates.
556
557 ### Overview of changes
558
559 - **[SECURITY FIX] Disable deserialization in `FilteredIterator`**
560
561 A `Deserialization of Untrusted Data` weakness was found in the `FilteredIterator` class.
562
563 This security vulnerability was first reported to the WordPress project. The security fix applied to WordPress has been ported back into the library.
564
565 GitHub security advisory: [](https://github.com/WordPress/Requests/security/advisories/GHSA-52qp-jpq7-6c54Insecure Deserialization of untrusted data](https://github.com/WordPress/Requests/security/advisories/GHSA-52qp-jpq7-6c54](https://github.com/WordPress/Requests/security/advisories/GHSA-52qp-jpq7-6c54)
566
567 CVE: [](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-29476CVE-2021-29476 - Deserialization of Untrusted Data](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-29476](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-29476)
568
569 Related WordPress CVE: [](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-28032https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-28032](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-28032](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-28032)
570
571 (props [@dd32][gh-dd32], [@desrosj][gh-desrosj], [@jrfnl][gh-jrfnl], [@peterwilsoncc][gh-peterwilsoncc], [@SergeyBiryukov][gh-SergeyBiryukov], [@whyisjake][gh-whyisjake], [@xknown][gh-xknown], [#421][gh-421], [#422][gh-422])
572
573
574 - **Repository moved to `WordPress\Requests`**
575
576 The `Requests` library has been moved to the WordPress GitHub organization and can now be found under `https://github.com/WordPress/Requests`.
577
578 All links in code and documentation were updated accordingly.
579
580 Note: the Composer package name remains unchanged ([](https://packagist.org/packages/rmccue/requests`rmccue/requests`](https://packagist.org/packages/rmccue/requests](https://packagist.org/packages/rmccue/requests)), as well as the documentation site ([](https://requests.ryanmccue.info/requests.ryanmccue.info](https://requests.ryanmccue.info/](https://requests.ryanmccue.info/)).
581
582 (props [@dd32][gh-dd32], [@JustinyAhin][gh-JustinyAhin], [@jrfnl][gh-jrfnl], [@rmccue][gh-rmccue], [#440][gh-440], [#441][gh-441], [#448][gh-448])
583
584
585 - **Manage `"Expect"` header with `cURL` transport**
586
587 By default, `cURL` adds a `Expect: 100-Continue` header to certain requests. This can add as much as a second delay to requests done using `cURL`. This is [](https://curl.se/mail/lib-2017-07/0013.htmldiscussed on the cURL mailing list](https://curl.se/mail/lib-2017-07/0013.html](https://curl.se/mail/lib-2017-07/0013.html).
588
589 To prevent this, `Requests` now adds an empty `"Expect"` header to requests that are smaller than 1 MB and use HTTP/1.1.
590
591 (props [@carlalexander][gh-carlalexander], [@schlessera][gh-schlessera], [@TimothyBJacobs][gh-TimothyBJacobs], [#453][gh-453], [#454][gh-454], [#469][gh-469])
592
593
594 - **Update bundled certificates as of 2021-02-12**
595
596 The bundled certificates were updated. A small subset of expired certificates are still included for legacy reasons (and support).
597
598 (props [@ozh][gh-ozh], [@patmead][gh-patmead], [@schlessera][gh-schlessera], [@todeveni][gh-todeveni], [#385][gh-385], [#398][gh-398], [#451][gh-451])
599
600
601 - **Add required `Content-*` headers for empty `POST` requests**
602
603 Sends the `Content-Length` and `Content-Type` headers even for empty `POST` requests, as the length is expected as per [](https://tools.ietf.org/html/rfc2616#section-14.13RFC2616 Section 14.13](https://tools.ietf.org/html/rfc2616#section-14.13](https://tools.ietf.org/html/rfc2616#section-14.13):
604 ```
605 Content-Length header "SHOULD" be included. In practice, it is not
606 used for GET nor HEAD requests, but is expected for POST requests.
607 ```
608
609 (props [@dd32][gh-dd32], [@gstrauss][gh-gstrauss], [@jrfnl][gh-jrfnl], [@soulseekah][gh-soulseekah], [#248][gh-248], [#249][gh-249], [#318][gh-318], [#368][gh-368])
610
611
612 - **Ignore locale when creating the HTTP version string from a float**
613
614 The previous behavior allowed for the locale to mess up the float to string conversion resulting in a `GET / HTTP/1,1` instead of `GET / HTTP/1.1` request.
615
616 (props [@tonebender][gh-tonebender], [@Zegnat][gh-Zegnat], [#335][gh-335], [#339][gh-339])
617
618
619 - **Make `verify => false` work with `fsockopen`**
620
621 This allows the `fsockopen` transport now to ignore SSL failures when requested.
622
623 (props [@soulseekah][gh-soulseekah], [#310][gh-310], [#311][gh-311])
624
625
626 - **Only include port number in the `Host` header if it differs from the default**
627
628 The code was not violating the RFC per se, but also not following standard practice of leaving the port off when it is the default port for the scheme, which could lead to connectivity issues.
629
630 (props [@amandato][gh-amandato], [@dd32][gh-dd32], [#238][gh-238])
631
632
633 - **Fix PHP cross-version compatibility**
634
635 Important fixes have been made to improve cross-version compatibility of the code across all supported PHP versions.
636
637 - Use documented order for `implode()` arguments.
638 - Harden type handling when no domain was passed.
639 - Explicitly cast `$url` property to `string` in `Requests::parse_response()`.
640 - Initialize `$body` property to an empty string in `Requests::parse_response()`.
641 - Ensure the stream handle is valid before trying to close it.
642 - Ensure the `$callback` in the `FilteredIterator` is callable before calling it.
643
644 (props [@aaronjorbin][gh-aaronjorbin], [@jrfnl][gh-jrfnl], [#346][gh-346], [#370][gh-370], [#425][gh-425], [#426][gh-426], [#456][gh-456], [#457][gh-457])
645
646
647 - **Improve testing**
648
649 Lots of improvements were made to render the tests more reliable and increase the coverage.
650
651 And to top it all off, all tests are now run against all supported PHP versions, including PHP 8.0.
652
653 (props [@datagutten][gh-datagutten], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#345][gh-345], [#351][gh-351], [#355][gh-355], [#366][gh-366], [#412][gh-412], [#414][gh-414], [#445][gh-445], [#458][gh-458], [#464][gh-464])
654
655
656 - **Improve code quality and style**
657
658 A whole swoop of changes has been made to harden the code and make it more consistent.
659
660 The code style has been made consistent across both code and tests and is now enforced via a custom PHPCS rule set.
661
662 The WordPress Coding Standards were chosen as the basis for the code style checks as most contributors to this library originate from the WordPress community and will be familiar with this code style.
663
664 Main differences from the WordPress Coding Standards based on discussions and an analysis of the code styles already in use:
665
666 - No whitespace on the inside of parentheses.
667 - No Yoda conditions.
668
669 A more detailed overview of the decisions that went into the final code style rules can be found at [#434][gh-434].
670
671 (props [@jrfnl][gh-jrfnl], [@KasperFranz][gh-KasperFranz], [@ozh][gh-ozh], [@schlessera][gh-schlessera], [@TysonAndre][gh-TysonAndre], [#263][gh-263], [#296][gh-296], [#328][gh-328], [#358][gh-358], [#359][gh-359], [#360][gh-360], [#361][gh-361], [#362][gh-362], [#363][gh-363], [#364][gh-364], [#386][gh-386], [#396][gh-396], [#399][gh-399], [#400][gh-400], [#401][gh-401], [#402][gh-402], [#403][gh-403], [#404][gh-404], [#405][gh-405], [#406][gh-406], [#408][gh-408], [#409][gh-409], [#410][gh-410], [#411][gh-411], [#413][gh-413], [#415][gh-415], [#416][gh-416], [#417][gh-417], [#423][gh-423], [#424][gh-424], [#434][gh-434])
672
673
674 - **Replace Travis CI with GitHub Actions (partial)**
675
676 The entire CI setup is gradually being moved from Travis CI to GitHub Actions.
677
678 At this point, GitHub Actions takes over the CI from PHP 5.5 onwards, leaving Travis CI as a fallback for lower PHP versions.
679
680 This move will be completed after the planned minimum version bump to PHP 5.6+ with the next release, at which point we will get rid of all the remaining Travis CI integrations.
681
682 (props [@dd32][gh-dd32], [@desrosj][gh-desrosj], [@jrfnl][gh-jrfnl], [@ntwb][gh-ntwb], [@ozh][gh-ozh], [@schlessera][gh-schlessera], [@TimothyBJacobs][gh-TimothyBJacobs], [@TysonAndre][gh-TysonAndre], [#280][gh-280], [#298][gh-298], [#302][gh-302], [#303][gh-303], [#352][gh-352], [#353][gh-353], [#354][gh-354], [#356][gh-356], [#388][gh-388], [#397][gh-397], [#428][gh-428], [#436][gh-436], [#439][gh-439], [#461][gh-461], [#467][gh-467])
683
684
685 - **Update and improve documentation**
686 - Use clearer and more inclusive language.
687 - Update the GitHub Pages site.
688 - Update content and various tweaks to the markdown.
689 - Fix code blocks in `README.md` file.
690 - Add pagination to documentation pages.
691
692 (props [@desrosj][gh-desrosj], [@jrfnl][gh-jrfnl], [@JustinyAhin][gh-JustinyAhin], [@tnorthcutt][gh-tnorthcutt], [#334][gh-334], [#367][gh-367], [#387][gh-387], [#443][gh-443], [#462][gh-462], [#465][gh-465], [#468][gh-468], [#471][gh-471] )
693
694 [gh-194]: https://github.com/WordPress/Requests/issues/194
695 [gh-238]: https://github.com/WordPress/Requests/issues/238
696 [gh-248]: https://github.com/WordPress/Requests/issues/248
697 [gh-249]: https://github.com/WordPress/Requests/issues/249
698 [gh-263]: https://github.com/WordPress/Requests/issues/263
699 [gh-280]: https://github.com/WordPress/Requests/issues/280
700 [gh-296]: https://github.com/WordPress/Requests/issues/296
701 [gh-298]: https://github.com/WordPress/Requests/issues/298
702 [gh-302]: https://github.com/WordPress/Requests/issues/302
703 [gh-303]: https://github.com/WordPress/Requests/issues/303
704 [gh-310]: https://github.com/WordPress/Requests/issues/310
705 [gh-311]: https://github.com/WordPress/Requests/issues/311
706 [gh-318]: https://github.com/WordPress/Requests/issues/318
707 [gh-328]: https://github.com/WordPress/Requests/issues/328
708 [gh-334]: https://github.com/WordPress/Requests/issues/334
709 [gh-335]: https://github.com/WordPress/Requests/issues/335
710 [gh-339]: https://github.com/WordPress/Requests/issues/339
711 [gh-345]: https://github.com/WordPress/Requests/issues/345
712 [gh-346]: https://github.com/WordPress/Requests/issues/346
713 [gh-351]: https://github.com/WordPress/Requests/issues/351
714 [gh-352]: https://github.com/WordPress/Requests/issues/352
715 [gh-353]: https://github.com/WordPress/Requests/issues/353
716 [gh-354]: https://github.com/WordPress/Requests/issues/354
717 [gh-355]: https://github.com/WordPress/Requests/issues/355
718 [gh-356]: https://github.com/WordPress/Requests/issues/356
719 [gh-358]: https://github.com/WordPress/Requests/issues/358
720 [gh-359]: https://github.com/WordPress/Requests/issues/359
721 [gh-360]: https://github.com/WordPress/Requests/issues/360
722 [gh-361]: https://github.com/WordPress/Requests/issues/361
723 [gh-362]: https://github.com/WordPress/Requests/issues/362
724 [gh-363]: https://github.com/WordPress/Requests/issues/363
725 [gh-364]: https://github.com/WordPress/Requests/issues/364
726 [gh-366]: https://github.com/WordPress/Requests/issues/366
727 [gh-367]: https://github.com/WordPress/Requests/issues/367
728 [gh-367]: https://github.com/WordPress/Requests/issues/367
729 [gh-368]: https://github.com/WordPress/Requests/issues/368
730 [gh-370]: https://github.com/WordPress/Requests/issues/370
731 [gh-385]: https://github.com/WordPress/Requests/issues/385
732 [gh-386]: https://github.com/WordPress/Requests/issues/386
733 [gh-387]: https://github.com/WordPress/Requests/issues/387
734 [gh-388]: https://github.com/WordPress/Requests/issues/388
735 [gh-396]: https://github.com/WordPress/Requests/issues/396
736 [gh-397]: https://github.com/WordPress/Requests/issues/397
737 [gh-398]: https://github.com/WordPress/Requests/issues/398
738 [gh-399]: https://github.com/WordPress/Requests/issues/399
739 [gh-400]: https://github.com/WordPress/Requests/issues/400
740 [gh-401]: https://github.com/WordPress/Requests/issues/401
741 [gh-402]: https://github.com/WordPress/Requests/issues/402
742 [gh-403]: https://github.com/WordPress/Requests/issues/403
743 [gh-404]: https://github.com/WordPress/Requests/issues/404
744 [gh-405]: https://github.com/WordPress/Requests/issues/405
745 [gh-406]: https://github.com/WordPress/Requests/issues/406
746 [gh-408]: https://github.com/WordPress/Requests/issues/408
747 [gh-409]: https://github.com/WordPress/Requests/issues/409
748 [gh-410]: https://github.com/WordPress/Requests/issues/410
749 [gh-411]: https://github.com/WordPress/Requests/issues/411
750 [gh-412]: https://github.com/WordPress/Requests/issues/412
751 [gh-413]: https://github.com/WordPress/Requests/issues/413
752 [gh-414]: https://github.com/WordPress/Requests/issues/414
753 [gh-415]: https://github.com/WordPress/Requests/issues/415
754 [gh-416]: https://github.com/WordPress/Requests/issues/416
755 [gh-417]: https://github.com/WordPress/Requests/issues/417
756 [gh-421]: https://github.com/WordPress/Requests/issues/421
757 [gh-422]: https://github.com/WordPress/Requests/issues/422
758 [gh-423]: https://github.com/WordPress/Requests/issues/423
759 [gh-424]: https://github.com/WordPress/Requests/issues/424
760 [gh-425]: https://github.com/WordPress/Requests/issues/425
761 [gh-426]: https://github.com/WordPress/Requests/issues/426
762 [gh-428]: https://github.com/WordPress/Requests/issues/428
763 [gh-434]: https://github.com/WordPress/Requests/issues/434
764 [gh-436]: https://github.com/WordPress/Requests/issues/436
765 [gh-439]: https://github.com/WordPress/Requests/issues/439
766 [gh-440]: https://github.com/WordPress/Requests/issues/440
767 [gh-441]: https://github.com/WordPress/Requests/issues/441
768 [gh-443]: https://github.com/WordPress/Requests/issues/443
769 [gh-445]: https://github.com/WordPress/Requests/issues/445
770 [gh-448]: https://github.com/WordPress/Requests/issues/448
771 [gh-451]: https://github.com/WordPress/Requests/issues/451
772 [gh-453]: https://github.com/WordPress/Requests/issues/453
773 [gh-454]: https://github.com/WordPress/Requests/issues/454
774 [gh-456]: https://github.com/WordPress/Requests/issues/456
775 [gh-457]: https://github.com/WordPress/Requests/issues/457
776 [gh-458]: https://github.com/WordPress/Requests/issues/458
777 [gh-461]: https://github.com/WordPress/Requests/issues/461
778 [gh-462]: https://github.com/WordPress/Requests/issues/462
779 [gh-464]: https://github.com/WordPress/Requests/issues/464
780 [gh-465]: https://github.com/WordPress/Requests/issues/465
781 [gh-467]: https://github.com/WordPress/Requests/issues/467
782 [gh-468]: https://github.com/WordPress/Requests/issues/468
783 [gh-469]: https://github.com/WordPress/Requests/issues/469
784 [gh-471]: https://github.com/WordPress/Requests/issues/471
785
786 1.7.0
787 -----
788
789 - Add support for HHVM and PHP 7
790
791 Requests is now tested against both HHVM and PHP 7, and they are supported as
792 first-party platforms.
793
794 (props [@rmccue][gh-rmccue], [#106][gh-106], [#176][gh-176])
795
796 - Transfer & connect timeouts, in seconds & milliseconds
797
798 cURL is unable to handle timeouts under a second in DNS lookups, so we round
799 those up to ensure 1-999ms isn't counted as an instant failure.
800
801 (props [@ozh][gh-ozh], [@rmccue][gh-rmccue], [#97][gh-97], [#216][gh-216])
802
803 - Rework cookie handling to be more thorough.
804
805 Cookies are now restricted to the same-origin by default, expiration is checked.
806
807 (props [@catharsisjelly][gh-catharsisjelly], [@rmccue][gh-rmccue], [#120][gh-120], [#124][gh-124], [#130][gh-130], [#132][gh-132], [#156][gh-156])
808
809 - Improve testing
810
811 Tests are now run locally to speed them up, as well as further general
812 improvements to the quality of the testing suite. There are now also
813 comprehensive proxy tests to ensure coverage there.
814
815 (props [@rmccue][gh-rmccue], [#75][gh-75], [#107][gh-107], [#170][gh-170], [#177][gh-177], [#181][gh-181], [#183][gh-183], [#185][gh-185], [#196][gh-196], [#202][gh-202], [#203][gh-203])
816
817 - Support custom HTTP methods
818
819 Previously, custom HTTP methods were only supported on sockets; they are now
820 supported across all transports.
821
822 (props [@ocean90][gh-ocean90], [#227][gh-227])
823
824 - Add byte limit option
825
826 (props [@rmccue][gh-rmccue], [#172][gh-172])
827
828 - Support a Requests_Proxy_HTTP() instance for the proxy setting.
829
830 (props [@ocean90][gh-ocean90], [#223][gh-223])
831
832 - Add progress hook
833
834 (props [@rmccue][gh-rmccue], [#180][gh-180])
835
836 - Add a before_redirect hook to alter redirects
837
838 (props [@rmccue][gh-rmccue], [#205][gh-205])
839
840 - Pass cURL info to after_request
841
842 (props [@rmccue][gh-rmccue], [#206][gh-206])
843
844 - Remove explicit autoload in Composer installation instructions
845
846 (props [@SlikNL][gh-SlikNL], [#86][gh-86])
847
848 - Restrict CURLOPT_PROTOCOLS on `defined()` instead of `version_compare()`
849
850 (props [@ozh][gh-ozh], [#92][gh-92])
851
852 - Fix doc - typo in "Authentication"
853
854 (props [@remik][gh-remik], [#99][gh-99])
855
856 - Contextually check for a valid transport
857
858 (props [@ozh][gh-ozh], [#101][gh-101])
859
860 - Follow relative redirects correctly
861
862 (props [@ozh][gh-ozh], [#103][gh-103])
863
864 - Use cURL's version_number
865
866 (props [@mishan][gh-mishan], [#104][gh-104])
867
868 - Removed duplicated option docs
869
870 (props [@staabm][gh-staabm], [#112][gh-112])
871
872 - code styling fixed
873
874 (props [@imsaintx][gh-imsaintx], [#113][gh-113])
875
876 - Fix IRI "normalization"
877
878 (props [@ozh][gh-ozh], [#128][gh-128])
879
880 - Mention two PHP extension dependencies in the README.
881
882 (props [@orlitzky][gh-orlitzky], [#136][gh-136])
883
884 - Ignore coverage report files
885
886 (props [@ozh][gh-ozh], [#148][gh-148])
887
888 - drop obsolete "return" after throw
889
890 (props [@staabm][gh-staabm], [#150][gh-150])
891
892 - Updated exception message to specify both http + https
893
894 (props [@beutnagel][gh-beutnagel], [#162][gh-162])
895
896 - Sets `stream_headers` method to public to allow calling it from other
897 places.
898
899 (props [@adri][gh-adri], [#158][gh-158])
900
901 - Remove duplicated stream_get_meta_data call
902
903 (props [@rmccue][gh-rmccue], [#179][gh-179])
904
905 - Transmits $errno from stream_socket_client in exception
906
907 (props [@laurentmartelli][gh-laurentmartelli], [#174][gh-174])
908
909 - Correct methods to use snake_case
910
911 (props [@rmccue][gh-rmccue], [#184][gh-184])
912
913 - Improve code quality
914
915 (props [@rmccue][gh-rmccue], [#186][gh-186])
916
917 - Update Build Status image
918
919 (props [@rmccue][gh-rmccue], [#187][gh-187])
920
921 - Fix/Rationalize transports (v2)
922
923 (props [@rmccue][gh-rmccue], [#188][gh-188])
924
925 - Surface cURL errors
926
927 (props [@ifwe][gh-ifwe], [#194][gh-194])
928
929 - Fix for memleak and curl_close() never being called
930
931 (props [@kwuerl][gh-kwuerl], [#200][gh-200])
932
933 - addex how to install with composer
934
935 (props [@royopa][gh-royopa], [#164][gh-164])
936
937 - Uppercase the method to ensure compatibility
938
939 (props [@rmccue][gh-rmccue], [#207][gh-207])
940
941 - Store default certificate path
942
943 (props [@rmccue][gh-rmccue], [#210][gh-210])
944
945 - Force closing keep-alive connections on old cURL
946
947 (props [@rmccue][gh-rmccue], [#211][gh-211])
948
949 - Docs: Updated HTTP links with HTTPS links where applicable
950
951 (props [@ntwb][gh-ntwb], [#215][gh-215])
952
953 - Remove the executable bit
954
955 (props [@ocean90][gh-ocean90], [#224][gh-224])
956
957 - Change more links to HTTPS
958
959 (props [@rmccue][gh-rmccue], [#217][gh-217])
960
961 - Bail from cURL when either `curl_init()` OR `curl_exec()` are unavailable
962
963 (props [@dd32][gh-dd32], [#230][gh-230])
964
965 - Disable OpenSSL's internal peer_name checking when `verifyname` is disabled.
966
967 (props [@dd32][gh-dd32], [#239][gh-239])
968
969 - Only include the port number in the `Host` header when it differs from
970 default
971
972 (props [@dd32][gh-dd32], [#238][gh-238])
973
974 - Respect port if specified for HTTPS connections
975
976 (props [@dd32][gh-dd32], [#237][gh-237])
977
978 - Allow paths starting with a double-slash
979
980 (props [@rmccue][gh-rmccue], [#240][gh-240])
981
982 - Fixes bug in rfc2616 #3.6.1 implementation.
983
984 (props [@stephenharris][gh-stephenharris], [#236][gh-236], [#3][gh-3])
985
986 - CURLOPT_HTTPHEADER在php7接受空数组导致php-fpm奔溃
987
988 (props [@qibinghua][gh-qibinghua], [#219][gh-219])
989
990 [gh-3]: https://github.com/WordPress/Requests/issues/3
991 [gh-75]: https://github.com/WordPress/Requests/issues/75
992 [gh-86]: https://github.com/WordPress/Requests/issues/86
993 [gh-92]: https://github.com/WordPress/Requests/issues/92
994 [gh-97]: https://github.com/WordPress/Requests/issues/97
995 [gh-99]: https://github.com/WordPress/Requests/issues/99
996 [gh-101]: https://github.com/WordPress/Requests/issues/101
997 [gh-103]: https://github.com/WordPress/Requests/issues/103
998 [gh-104]: https://github.com/WordPress/Requests/issues/104
999 [gh-106]: https://github.com/WordPress/Requests/issues/106
1000 [gh-107]: https://github.com/WordPress/Requests/issues/107
1001 [gh-112]: https://github.com/WordPress/Requests/issues/112
1002 [gh-113]: https://github.com/WordPress/Requests/issues/113
1003 [gh-120]: https://github.com/WordPress/Requests/issues/120
1004 [gh-124]: https://github.com/WordPress/Requests/issues/124
1005 [gh-128]: https://github.com/WordPress/Requests/issues/128
1006 [gh-130]: https://github.com/WordPress/Requests/issues/130
1007 [gh-132]: https://github.com/WordPress/Requests/issues/132
1008 [gh-136]: https://github.com/WordPress/Requests/issues/136
1009 [gh-148]: https://github.com/WordPress/Requests/issues/148
1010 [gh-150]: https://github.com/WordPress/Requests/issues/150
1011 [gh-156]: https://github.com/WordPress/Requests/issues/156
1012 [gh-158]: https://github.com/WordPress/Requests/issues/158
1013 [gh-162]: https://github.com/WordPress/Requests/issues/162
1014 [gh-164]: https://github.com/WordPress/Requests/issues/164
1015 [gh-170]: https://github.com/WordPress/Requests/issues/170
1016 [gh-172]: https://github.com/WordPress/Requests/issues/172
1017 [gh-174]: https://github.com/WordPress/Requests/issues/174
1018 [gh-176]: https://github.com/WordPress/Requests/issues/176
1019 [gh-177]: https://github.com/WordPress/Requests/issues/177
1020 [gh-179]: https://github.com/WordPress/Requests/issues/179
1021 [gh-180]: https://github.com/WordPress/Requests/issues/180
1022 [gh-181]: https://github.com/WordPress/Requests/issues/181
1023 [gh-183]: https://github.com/WordPress/Requests/issues/183
1024 [gh-184]: https://github.com/WordPress/Requests/issues/184
1025 [gh-185]: https://github.com/WordPress/Requests/issues/185
1026 [gh-186]: https://github.com/WordPress/Requests/issues/186
1027 [gh-187]: https://github.com/WordPress/Requests/issues/187
1028 [gh-188]: https://github.com/WordPress/Requests/issues/188
1029 [gh-194]: https://github.com/WordPress/Requests/issues/194
1030 [gh-196]: https://github.com/WordPress/Requests/issues/196
1031 [gh-200]: https://github.com/WordPress/Requests/issues/200
1032 [gh-202]: https://github.com/WordPress/Requests/issues/202
1033 [gh-203]: https://github.com/WordPress/Requests/issues/203
1034 [gh-205]: https://github.com/WordPress/Requests/issues/205
1035 [gh-206]: https://github.com/WordPress/Requests/issues/206
1036 [gh-207]: https://github.com/WordPress/Requests/issues/207
1037 [gh-210]: https://github.com/WordPress/Requests/issues/210
1038 [gh-211]: https://github.com/WordPress/Requests/issues/211
1039 [gh-215]: https://github.com/WordPress/Requests/issues/215
1040 [gh-216]: https://github.com/WordPress/Requests/issues/216
1041 [gh-217]: https://github.com/WordPress/Requests/issues/217
1042 [gh-219]: https://github.com/WordPress/Requests/issues/219
1043 [gh-223]: https://github.com/WordPress/Requests/issues/223
1044 [gh-224]: https://github.com/WordPress/Requests/issues/224
1045 [gh-227]: https://github.com/WordPress/Requests/issues/227
1046 [gh-230]: https://github.com/WordPress/Requests/issues/230
1047 [gh-236]: https://github.com/WordPress/Requests/issues/236
1048 [gh-237]: https://github.com/WordPress/Requests/issues/237
1049 [gh-238]: https://github.com/WordPress/Requests/issues/238
1050 [gh-239]: https://github.com/WordPress/Requests/issues/239
1051 [gh-240]: https://github.com/WordPress/Requests/issues/240
1052
1053 1.6.0
1054 -----
1055 - [Add multiple request support][#23] - Send multiple HTTP requests with both
1056 fsockopen and cURL, transparently falling back to synchronous when
1057 not supported.
1058
1059 - [Add proxy support][#70] - HTTP proxies are now natively supported via a
1060 [high-level API][docs/proxy]. Major props to Ozh for his fantastic work
1061 on this.
1062
1063 - [Verify host name for SSL requests][#63] - Requests is now the first and only
1064 standalone HTTP library to fully verify SSL hostnames even with socket
1065 connections. Thanks to Michael Adams, Dion Hulse, Jon Cave, and Pádraic Brady
1066 for reviewing the crucial code behind this.
1067
1068 - [Add cookie support][#64] - Adds built-in support for cookies (built entirely
1069 as a high-level API)
1070
1071 - [Add sessions][#62] - To compliment cookies, [sessions][docs/usage-advanced]
1072 can be created with a base URL and default options, plus a shared cookie jar.
1073
1074 - Add [PUT][#1], [DELETE][#3], and [PATCH][#2] request support
1075
1076 - [Add Composer support][#6] - You can now install Requests via the
1077 `rmccue/requests` package on Composer
1078
1079 [docs/proxy]: https://requests.ryanmccue.info/docs/proxy.html
1080 [docs/usage-advanced]: https://requests.ryanmccue.info/docs/usage-advanced.html
1081
1082 [#1]: https://github.com/WordPress/Requests/issues/1
1083 [#2]: https://github.com/WordPress/Requests/issues/2
1084 [#3]: https://github.com/WordPress/Requests/issues/3
1085 [#6]: https://github.com/WordPress/Requests/issues/6
1086 [#9]: https://github.com/WordPress/Requests/issues/9
1087 [#23]: https://github.com/WordPress/Requests/issues/23
1088 [#62]: https://github.com/WordPress/Requests/issues/62
1089 [#63]: https://github.com/WordPress/Requests/issues/63
1090 [#64]: https://github.com/WordPress/Requests/issues/64
1091 [#70]: https://github.com/WordPress/Requests/issues/70
1092
1093 [View all changes][https://github.com/WordPress/Requests/compare/v1.5.0...v1.6.0]
1094
1095 1.5.0
1096 -----
1097 Initial release!
1098
1099 [gh-aaronjorbin]: https://github.com/aaronjorbin
1100 [gh-adri]: https://github.com/adri
1101 [gh-alpipego]: https://github.com/alpipego/
1102 [gh-amandato]: https://github.com/amandato
1103 [gh-ayesh]: https://github.com/Ayesh
1104 [gh-beutnagel]: https://github.com/beutnagel
1105 [gh-carlalexander]: https://github.com/carlalexander
1106 [gh-catharsisjelly]: https://github.com/catharsisjelly
1107 [gh-ccrims0n]: https://github.com/ccrims0n
1108 [gh-costdev]: https://github.com/costdev
1109 [gh-datagutten]: https://github.com/datagutten
1110 [gh-dustinrue]: https://github.com/dustinrue
1111 [gh-dd32]: https://github.com/dd32
1112 [gh-desrosj]: https://github.com/desrosj
1113 [gh-gstrauss]: https://github.com/gstrauss
1114 [gh-ifwe]: https://github.com/ifwe
1115 [gh-imsaintx]: https://github.com/imsaintx
1116 [gh-jegrandet]: https://github.com/jegrandet
1117 [gh-JustinyAhin]: https://github.com/JustinyAhin
1118 [gh-jrfnl]: https://github.com/jrfnl
1119 [gh-KasperFranz]: https://github.com/KasperFranz
1120 [gh-kwuerl]: https://github.com/kwuerl
1121 [gh-laszlof]: https://github.com/laszlof
1122 [gh-laurentmartelli]: https://github.com/laurentmartelli
1123 [gh-mbabker]: https://github.com/mbabker
1124 [gh-mircobabini]: https://github.com/mircobabini
1125 [gh-mishan]: https://github.com/mishan
1126 [gh-ntwb]: https://github.com/ntwb
1127 [gh-ocean90]: https://github.com/ocean90
1128 [gh-orlitzky]: https://github.com/orlitzky
1129 [gh-ozh]: https://github.com/ozh
1130 [gh-patmead]: https://github.com/patmead
1131 [gh-peterwilsoncc]: https://github.com/peterwilsoncc
1132 [gh-pmbaldha]: https://github.com/pmbaldha
1133 [gh-qibinghua]: https://github.com/qibinghua
1134 [gh-remik]: https://github.com/remik
1135 [gh-rmccue]: https://github.com/rmccue
1136 [gh-royopa]: https://github.com/royopa
1137 [gh-schlessera]: https://github.com/schlessera
1138 [gh-SergeyBiryukov]: https://github.com/SergeyBiryukov
1139 [gh-SlikNL]: https://github.com/SlikNL
1140 [gh-soulseekah]: https://github.com/soulseekah
1141 [gh-staabm]: https://github.com/staabm
1142 [gh-stephenharris]: https://github.com/stephenharris
1143 [gh-szepeviktor]: https://github.com/szepeviktor
1144 [gh-TimothyBJacobs]: https://github.com/TimothyBJacobs
1145 [gh-tnorthcutt]: https://github.com/tnorthcutt
1146 [gh-TobiasBg]: https://github.com/TobiasBg
1147 [gh-todeveni]: https://github.com/todeveni
1148 [gh-tomsommer]: https://github.com/tomsommer
1149 [gh-tonebender]: https://github.com/tonebender
1150 [gh-twdnhfr]: https://github.com/twdnhfr
1151 [gh-TysonAndre]: https://github.com/TysonAndre
1152 [gh-whyisjake]: https://github.com/whyisjake
1153 [gh-wojsmol]: https://github.com/wojsmol
1154 [gh-xknown]: https://github.com/xknown
1155 [gh-Zegnat]: https://github.com/Zegnat
1156 [gh-ZsgsDesign]: https://github.com/ZsgsDesign
1157
1158