Home » HTTP » HTTP_Request2
Provides an easy way to perform HTTP requests.
Download latest release 2.7.0 (there might be newer Composer installable version)
License: BSD 3-Clause License
Description
PHP5 rewrite of HTTP_Request package (with parts of HTTP_Client). Provides
cleaner API and pluggable Adapters:
* Socket adapter, based on old HTTP_Request code,
* Curl adapter, wraps around PHP's cURL extension,
* Mock adapter, to use for testing packages dependent on HTTP_Request2.
Supports POST requests with data and file uploads, basic and digest
authentication, cookies, managing cookies across requests, proxies, gzip and
deflate encodings, redirects, monitoring the request progress with Observers...
Documentation
Maintainers
- Alexey Borzov (avb) — lead, active
Dependencies
Required
Optional
- curl (extension)
- fileinfo (extension)
- zlib (extension)
- openssl (extension)
Releases
- 2.7.0 (stable, 2025-04-06)
Release notes
License: BSD 3-Clause License
Added:
* Tested on PHP 8.4;
* Psalm 6 used for static analysis;
* Updated Public Suffix List.Fixed:
* Prevent XSS when PHP files backing server-side tests are served from
a publicly available website, thanks to Peter Potrowl
(peter017 at gmail dot com) for the report.
* data/generate-list.php will only run with a command-line SAPI.
* Better random value used for `cnonce` parameter in Digest authentication,
see https://github.com/pear/HTTP_Request2/issues/30.
Digest authentication should be considered deprecated, however. - 2.6.0 (stable, 2023-11-01)
Release notes
License: BSD 3-Clause License
* Tested on PHP 8.2 and 8.3
* Use psalm for static analysis, several minor issues fixed
* Correctly parse HTTP status line with an empty reason-phrase
(see https://github.com/pear/HTTP_Request2/pull/26)
* Updated Public Suffix List - 2.5.1 (stable, 2022-01-06)
Release notes
License: BSD 3-Clause License
* The package runs under PHP 8.1 without `E_DEPRECATED` messages
https://github.com/pear/HTTP_Request2/issues/25
* Updated Public Suffix List - 2.5.0 (stable, 2021-07-12)
Release notes
License: BSD 3-Clause License
Fixed
* Socket adapter will now retry writing to socket rather than throw an exception if `fwrite()` call
returns zero written bytes
https://github.com/pear/HTTP_Request2/issues/23Changed
* Socket adapter will use only TLS 1.2 and TLS 1.3
(the latter is available on PHP 7.4+)
* Upgraded tests for PHPUnit 9 compatibility, PHPUnit Polyfills package
is used to run them on PHP 5.6 to PHP 8
* Test suite now runs on Github Actions rather than on Travis
* Updated Public Suffix List - 2.4.2 (stable, 2020-09-24)
Release notes
License: BSD 3-Clause License
Socket adapter could prematurely end receiving the response body due to
fread() call returning an empty string - 2.4.1 (stable, 2020-08-01)
Release notes
License: BSD 3-Clause License
Switch socket to blocking mode when enabling crypto, this fixes HTTPS requests
through proxy with Socket adapter
https://github.com/pear/HTTP_Request2/issues/20 - 2.4.0 (stable, 2020-07-26)
Release notes
License: BSD 3-Clause License
* Minimum required version is now PHP 5.6, as using older versions for HTTPS
requests may be insecure
* Removed support for magic_quotes_runtime, as get_magic_quotes_runtime()
was deprecated in PHP 7.4 and the functionality itself was disabled
since PHP 5.4 (bug #23839)
* Socket adapter now uses socket in non-blocking mode, as some configurations
could have problems with timeouts in HTTPS requests (bug #21229)
* Fixed bogus size check error with gzipped responses larger than 4 GiB
uncompressed (bug #21239)
* Use current "Intermediate compatibility" cipher list
* Updated Public Suffix ListThe package is now 100% autoload-compatible, when installed with composer it
no longer uses include-path and does not contain require_once statements - 2.3.0 (stable, 2016-02-13)
Release notes
License: BSD 3-Clause License
New features:
* New observer that can do on-the-fly decoding of compressed responses,
see HTTP_Request2_Observer_UncompressingDownload.
Thanks to Delian Krustev for initial implementation.
* CookieJar can now silently ignore invalid cookies with $jar->ignoreInvalidCookies(true);
instead of throwing an exception. See requests #19937 and #20401
* Adapters now dispatch a new 'warning' event, e.g. in case of incomplete response
body or broken 'chunked' encoding. Exception was thrown previously by Socket adapter
in the latter case, see bug #20228
* Improved security of HTTPS requests in Socket adapter
- Use 'tls://' instead of 'ssl://' in connection string to prevent fallback to
known insecure versions, use only TLS when enabling crypto via proxy (see bug #20462)
- On PHP 5.6+ require using only TLS 1.1 and TLS 1.2
- Do not use insecure ciphers
* Improved test suite, network-backed tests now run on Travis CIChanges and fixes:
* Curl adapter failed to send PUT request body with 'follow_redirects' on (bug #20440)
* Curl adapter supplied invalid cookie domain to CookieJar after redirect (bug #20561)
* Curl adapter now properly dispatches events while sending the request
* mime_content_type() returning false was handled incorrectly when guessing content-type
* Use 'peer_name' and 'verify_peer_name' SSL context options on PHP 5.6+
instead of deprecated 'CN_match'
* Public Suffix List updated to current version, its download location changedNote to Composer users: next package version will probably get rid of 'include-path'
setting in composer.json favour of using autoloader. - 2.2.1 (stable, 2014-01-16)
Release notes
License: BSD 3-Clause License
* Fixed a bogus timeout Exception in Socket adapter after waiting for
"100 Continue" response: the same one-second timeout was used
for further socket operations if explicit 'timeout' parameter was not set.
Thanks to Andrea Brancatelli (abrancatelli at schema31 dot it) for the report.
* Bundled a separate LICENSE file (request #20175). Updated phrasing and links
to mention 3-Clause BSD license the package actually uses. - 2.2.0 (stable, 2014-01-13)
Release notes
License: BSD License
New features
* Socket adapter will send "Expect: 100-continue" header and wait for
"100 Continue" response by default before sending large request body
(request #19233). This can be disabled by setting an empty "Expect"
header, the same way as done with Curl adapter (see bug #15937)
* It is possible to specify a local IP address to bind to using 'local_ip'
configuration parameter (request #19515)Other changes and fixes
* An infinite loop was possible when using a stream wrapper instead of
a regular file with MultipartBody (bug #19934)
* Socket adapter will properly send chunked request body if
"Transfer-Encoding: chunked" header is set for the request (bug #20125)
* Updated Public Suffix List to the latest version and updated its download script
* Unit tests fixes - 2.1.1 (stable, 2012-04-08)
Release notes
License: BSD License
Fixes for SOCKS5 proxies support in Socket adapter
- 2.1.0 (stable, 2012-04-07)
Release notes
License: BSD License
New features:
* Mock adapter can return responses based on request URL (request #19276)
* Support for SOCKS5 proxies, added 'proxy_type' configuration parameter
(request #19332)
* Proxy configuration may be given as an URL, e.g.
$request->setConfig('proxy', 'socks5://localhost:1080');Other changes and fixes:
* Coding standards fixes (request #14990)
* Unit tests now run from SVN checkout and under PHPUnit 3.6.x
* Explicit dependency on PEAR (until PEAR_Exception is a separate package)
* Get rid of track_errors, use a more robust solution (bug #19337)
* Additional class_exists() check in setAdapter() (request #19344)
* Public suffix list updated to current version - 2.0.0 (stable, 2011-10-20)
Release notes
License: BSD License
2.0.0RC2 repackaged as stable and depending on stable Net_URL2. No code changes.
- 2.0.0RC2 (beta, 2011-10-01)
Release notes
License: BSD License
* Added an accessor method for HTTP_Request2_Response::$phrases (request #18716)
* HTTP_Request2::send() throws an exception if URL is not provided
rather than dies with a fatal error (bug #18755)
* Public Suffix List updated to current version - 2.0.0RC1 (beta, 2011-05-06)
Release notes
License: BSD License
SSL options for Curl Adapter are always set, this prevents errors when
redirecting from HTTP to HTTPS (bug #18443) - 2.0.0beta3 (beta, 2011-04-03)
Release notes
License: BSD License
* Added getEffectiveUrl() method to Response object, it returns the URL
response was received from, possibly after redirects (request #18412)
* Curl Adapter didn't send body for PUT requests sometimes (bug #18421) - 2.0.0beta2 (beta, 2011-03-25)
Release notes
License: BSD License
* Unit tests can now be run under recent PHPUnit versions (3.5+)
* Public Suffix List updated to current version
* PHP warning produced by stream_socket_client() in Socket adapter is now
added to Exception message (bug #18331) - 2.0.0beta1 (beta, 2011-02-27)
Release notes
License: BSD License
Additions and changes:
* Implemented cookie jar that allows to store and pass cookies across HTTP
requests (see request #18225)
* Added several specialized subclasses of HTTP_Request2_Exception, they are
now thrown instead of the parent. Also added error codes and possibility
to get native error code (as returned by stream_socket_client() and
curl_errno()) (request #16762)
* An additional 'sentBody' event is now sent to Observers (request #16828)
* setBody() and addUpload() can now accept file pointers (request #16863)Bugfixes:
* Incorrect check in Socket Adapter prevented Keep-alive from working in
some cases (bug #17031) - 0.6.0 (alpha, 2011-02-14)
Release notes
License: BSD License
Additions and changes:
* Added test suite that interacts with a webserver. Please refer to
tests/NetworkConfig.php.dist for instructions.
* Packaging changes: docs/ and tests/ contents are installed without
redundant subdirectories.
* Added a $replace parameter to HTTP_Request2::setHeader() that controls
whether new header value will overwrite previous one or be appended
to it (request #17507)Bugfixes:
* Fixed a typo in Curl Adapter that prevented 'strict_redirects' from working
* Curl Adapter will throw an exception if CURLOPT_FOLLOWLOCATION can not be
enabled due to PHP setup (bug #17450)
* Allow parameters in manually set Content-Type headers (bug #17460)
* Properly reset redirect limit if multiple requests are performed with the
same instance of Socket Adapter (bug #17826)
* Response::getBody() no longer tries to decode empty strings (bug #18169) - 0.5.2 (alpha, 2010-04-21)
Release notes
License: BSD License
* magic_quotes_runtime PHP setting could be incorrectly enabled after
performing the request (bug #16440)
* Unit tests fixes (bugs #17079, #17106, #17326)
* Observer_Log now appends to the log file rather than rewrites it (thanks to
troelskn at gmail dot com for reporting) - 0.5.1 (alpha, 2009-11-21)
Release notes
License: BSD License
* Content-Type request header is no longer removed for POST and PUT requests
with empty request body (request #16799).
* CURLOPT_NOBODY option is now set when doing HEAD requests with Curl adapter. - 0.5.0 (alpha, 2009-11-18)
Release notes
License: BSD License
* Redirect support added, new configuration parameters 'follow_redirects',
'max_redirects' and 'strict_redirects' available* Implemented workaround for PHP bug #47204, Curl Adapter can now handle
Digest authentication and redirects when doing POST requests, unfortunately
this requires loading the entire request body into memory.
* Config parameter 'use_brackets' is propagated to created instances of Net_URL2
* Prevent memory leaks due to circular references (request #16646)
* Fixed a misleading error message when timing out due to default_socket_timeout
* HTTP_Request2::setBody() can now accept an instance of HTTP_Request2_MultipartBody
without trying to convert it to string
* Calling HTTP_Request2::setBody() now clears post parameters and uploads - 0.4.1 (alpha, 2009-09-14)
Release notes
License: BSD License
* Decoding of gzipped responses failed if mbstring.func_overload was enabled
(bug #16555)
* Changed boundary generation in multipart bodies to work correctly with
rapidshare.com, added first usage example: file uploading to rapidshare.com
* Added forgotten optional dependency on OpenSSL PHP extension - 0.4.0 (alpha, 2009-05-03)
Release notes
License: BSD License
* Added 'store_body' config parameter, if set to false it will prevent storing
the response body in Response object (request #15881)
* HTTP_Request2::setHeader() method now works as documented, setHeader('name')
will remove the 'name' header, while setHeader('name', '') will set 'name'
header to empty value (bug #15937)
* Custom 'Host' header will not be overwritten by generated one (bug #16146)
* When trying to reuse the connected socket in Socket adapter, make sure that
it is still connected (bug #16149) - 0.3.0 (alpha, 2009-01-28)
Release notes
License: BSD License
API changes:
* Removed HTTP_Request2::getConfigValue() methodFeature additions:
* Added digest authentication (RFC 2617) support to Socket adapter. Thanks
to Tom Snyder (tomsn at inetoffice dot com) who sent me a prototype
implementation for HTTP_Request a couple of years ago.
* Added HTTPS proxy support to Socket adapter, this works through CONNECT
request described in RFC 2817.
* Mock adapter can now throw an Exception instead of returning a response
if Exception object is added via its addResponse() method (request #15629)Other changes and fixes:
* Support RFC 3986 by not encoding '~' in POST body (request #15368)
* Prevent an error with particular versions of PHP and Curl (bug #15617)
* Regular expressions used in HTTP_Request2 are now class constants
(request #15630)
* Curl adapter now throws an exception in case of malformed (non-HTTP)
response rather than dies with a fatal error (bug #15716)
* Curl handle wasn't closed in Curl adapter in case of error (bug #15721)
* Curl adapter sent an extra 'sentHeaders' event and returned bogus
response status when server returned 100-Continue response (bug #15785) - 0.2.0 (alpha, 2009-01-07)
Release notes
License: BSD License
API changes:
* HTTP_Request2::getConfigValue() is deprecated and will be removed in next
release. Use HTTP_Request2::getConfig().
* Changed HTTP_Request2::setConfig() to accept a pair of parameter name and
parameter value in addition to array('parameter name' => 'value')
* Added HTTP_Request2::getConfig() method that can return a single
configuration parameter or the whole configuration arrayOther additions and changes:
* Added a debug Observer that can log request progress to a file or an
instance of PEAR::Log (thanks to David Jean Louis, request #15424)
* Added a new 'timeout' parameter that limits total number of seconds
a request can take (see requests #5735 and #8964)
* Added various SSL protocol options: 'ssl_verify_peer', 'ssl_verify_host',
'ssl_cafile', 'ssl_capath', 'ssl_local_cert', 'ssl_passphrase'. Note that
'ssl_verify_host' option behaves differently in Socket and Curl Adapters:
http://bugs.php.net/bug.php?id=47030Fixes:
* Fixed 'data error' when processing response encoded by 'deflate'
encoding (bug #15305)
* Curl Adapter now passes full request headers in 'sentHeaders' event - 0.1.0 (alpha, 2008-11-17)
Release notes
License: BSD License
Initial release. The features supported are mostly the same as those of
HTTP_Request, with the following additional feature requests implemented:
* cURL extension support (request #5463)
* It is now possible to monitor the file upload progress with Observers
(request #7630)
* Added 'sentHeaders' notification providing the request headers to the
Observers (request #7633)
* Added support for 'deflate' encoding (request #11246)
Bugs
| ID | Status | Type | Version | Date | Summary |
|---|---|---|---|---|---|
| #5022 | Open | Req | 2005-08-07 | Non-Blocking Requests not support | |
| #5463 | Closed | Req | 2005-09-20 | CURL support | |
| #5735 | Closed | Req | 2005-10-20 | No "true" timeout exists | |
| #7630 | Closed | Req | 2006-05-15 | Listener on data submit (file upload) | |
| #7633 | Closed | Req | 2006-05-15 | 'sentRequest' notification | |
| #8964 | Closed | Bug | 2006-10-11 | readTimeout isn't working as it should | |
| #9829 | Wont fix | Req | 2007-01-14 | Support for limiting the size of the response body | |
| #11246 | Closed | Req | 2007-06-07 | Problem with deflate encoding | |
| #13039 | No Feedback | Req | 2008-02-01 | Download helper class | |
| #13611 | No Feedback | Req | 2008-04-07 | add optional content-type header to multipart/form-data post elements | |
| #13729 | Closed | Req | 2008-04-20 | add ability to specify a different filename in addFile() | |
| #14990 | Closed | Req | CVS | 2008-11-10 | Improve PHPCS results |
| #15060 | Wont fix | Req | 0.1.0 | 2008-11-17 | Add a static method to set default adapater |
| #15086 | Bogus | Bug | 0.1.0 | 2008-11-19 | Implement the socket driver, or swap it from being the default loaded |
| #15172 | Bogus | Req | 0.1.0 | 2008-11-27 | Add ability to get request / response size in bytes |
| #15237 | Wont fix | Req | 0.1.0 | 2008-12-04 | Add removePostParameter() and removeUpload() methods |
| #15305 | Closed | Bug | 0.1.0 | 2008-12-15 | deflate content encoding handled incorrectly |
| #15368 | Closed | Req | 0.1.0 | 2008-12-20 | Support RFC 3986 with respect to urlencoding |
| #15424 | Closed | Req | 0.1.0 | 2008-12-28 | Add a verbose or debug mode that would log the request/response to stdout |
| #15575 | Bogus | Bug | 0.2.0 | 2009-01-08 | Error on adding a cookie string. |
| #15617 | Closed | Bug | 0.2.0 | 2009-01-12 | HTTP_Request2 unusable if phpversion <= 5.2.6 and curlversion >= 7.18.0 |
| #15629 | Closed | Req | 0.2.0 | 2009-01-13 | Add ability to set exception to be thrown in mock adapter |
| #15630 | Closed | Req | 0.2.0 | 2009-01-13 | Make an isToken() method that encapsulates the regular expression |
| #15656 | Wont fix | Req | 0.2.0 | 2009-01-16 | Do not return response in send method |
| #15716 | Closed | Bug | 0.2.0 | 2009-01-22 | fatal php error if requested server sends no headers (curl-adapter) |
| #15721 | Closed | Bug | 0.2.0 | 2009-01-22 | Curl handle not closed if curl_exec returns false (curl-adapter) |
| #15785 | Closed | Bug | CVS | 2009-01-27 | HTTP_Request2 fails for servers sending HTTP-StatusCode 100 Continue (curl-ada) |
| #15823 | Bogus | Bug | 0.3.0 | 2009-01-30 | Missing semi-colon at the end of Request2.php |
| #15824 | Bogus | Bug | 0.3.0 | 2009-01-30 | Missing semi-colon at the end of Request2.php |
| #15881 | Closed | Req | 2009-02-06 | Stream access to body | |
| #15937 | Closed | Bug | 2009-02-24 | Expect header sent for some versions of curl by default can not be unsetted | |
| #16146 | Closed | Req | 0.3.0 | 2009-04-23 | Custom 'Host' header & get raw body |
| #16149 | Closed | Bug | 0.3.0 | 2009-04-24 | Multiple requests through a single object errors |
| #16440 | Closed | Bug | 0.4.0 | 2009-07-14 | Problem with magic_quotes_runtime |
| #16555 | Closed | Bug | 0.4.0 | 2009-08-29 | mbstring.func_overload breaks decodeGzip() |
| #16646 | Closed | Req | 0.4.1 | 2009-09-26 | memory leak |
| #16762 | Closed | Req | 0.4.1 | 2009-11-03 | HTTP_Request2_Exception should contain errorcodes |
| #16799 | Closed | Req | CVS | 2009-11-18 | Add ability to not auto-set content-type and content-length |
| #16828 | Closed | Req | 0.5.1 | 2009-11-24 | Adding "sentBody" event |
| #16863 | Closed | Req | 0.5.1 | 2009-12-02 | addUpload accept file pointer. |
| #16910 | Wont fix | Req | 0.5.1 | 2009-12-16 | Add 'retry' support |
| #17031 | Closed | Bug | 2010-01-25 | Erroneous Keep-Alive assertions | |
| #17079 | Closed | Req | CVS | 2010-02-09 | All tests modifying the current dir |
| #17106 | Closed | Bug | CVS | 2010-02-16 | HTTP_Request2Test::testPlainBody fails |
| #17185 | Duplicate | Req | 0.5.1 | 2010-03-02 | Malformed request |
| #17323 | Duplicate | Bug | 0.5.1 | 2010-04-19 | Magic Quotes Check is Incorrect |
| #17326 | Closed | Bug | 0.5.1 | 2010-04-20 | unit test failure (MultipartBody.php isn't required) |
| #17327 | Duplicate | Bug | 0.5.1 | 2010-04-20 | unit test failure (MultipartBody.php isn't required) |
| #17344 | Bogus | Bug | SVN | 2010-04-25 | Unit tests fail HTTP_Request2Test::testPlainBody |
| #17450 | Closed | Bug | 0.5.2 | 2010-06-01 | Handle when set follow_redirects => true but curl follow redirect is disabled |
| #17460 | Closed | Bug | 0.5.2 | 2010-06-02 | Allow set custom content-type header for POST requests |
| #17506 | Duplicate | Req | 0.5.2 | 2010-06-21 | Add more exception classes |
| #17507 | Closed | Req | 0.5.2 | 2010-06-21 | Multiple "Link" header are stripped |
| #17826 | Closed | Bug | 0.5.2 | 2010-08-27 | Error with multiple requests with same HTTP_Request2 and Socket implementation |
| #17913 | Wont fix | Req | 0.5.2 | 2010-09-29 | clearPostParameters() |
| #18169 | Closed | Bug | 0.5.2 | 2011-01-01 | HTTP_Request2_Response::decodeDeflate fails for empty string |
| #18225 | Closed | Req | 0.5.2 | 2011-01-27 | Import cookies from response |
| #18318 | Closed | Req | 2011-02-26 | Publish stable version of HTTP_Request2 | |
| #18331 | Closed | Bug | 2.0.0beta1 | 2011-03-02 | Add warning raised by stream_socket_client() to exception message |
| #18412 | Closed | Req | 2.0.0beta2 | 2011-03-31 | Impossible to determine effective URL when follow_redirects is true |
| #18421 | Closed | Bug | 2.0.0beta2 | 2011-04-03 | Body not sent for PUT request with Curl Adapter |
| #18443 | Closed | Bug | 2.0.0beta3 | 2011-04-14 | Curl Adaptor ignores SSL settings on redirects |
| #18480 | Bogus | Bug | 2.0.0beta3 | 2011-04-26 | Certificate error when connecting to https://accounts.google.com |
| #18680 | Open | Req | Unknown | 2011-07-22 | Be able to run asyncronous request(s) |
| #18716 | Closed | Req | 2.0.0RC1 | 2011-08-11 | Http_Request2_Response::phrases should be public |
| #18745 | Wont fix | Req | 2.0.0RC1 | 2011-08-19 | optionally throw exception when HTTP error status code sent |
| #18754 | Bogus | Bug | 2.0.0RC1 | 2011-08-24 | Emulating POST |
| #18755 | Closed | Bug | 2.0.0RC1 | 2011-08-24 | Http request with NULL value |
| #18758 | Bogus | Bug | 2.0.0RC1 | 2011-08-25 | file public-suffix-list.php is missing |
| #18865 | Bogus | Bug | 2.0.0RC1 | 2011-09-22 | 500+ statuses - death errors |
| #18924 | Closed | Bug | 2.0.0 | 2011-10-23 | Test can't be run for sources |
| #19156 | Bogus | Bug | 2.0.0 | 2011-12-22 | isRedirected() reports FALSE even when redirected if HTTP HEAD used. |
| #19225 | Bogus | Bug | 2.0.0 | 2012-01-14 | missing dep in the package |
| #19233 | Closed | Req | 2.0.0 | 2012-01-21 | Posting file with digest auth means files is uploaded twice |
| #19238 | Closed | Doc | 2.0.0 | 2012-01-22 | addUpload cannot take string containing file contents |
| #19274 | Bogus | Bug | 2.0.0 | 2012-02-02 | The Response Content-Length is missing in METHOD_HEAD |
| #19276 | Closed | Req | SVN | 2012-02-04 | Mock: per-URL responses |
| #19298 | Bogus | Bug | 2.0.0 | 2012-02-18 | fatal error when calling getCode() for exception |
| #19316 | Open | Req | 2.0.0 | 2012-03-04 | Upload by passing string contents |
| #19332 | Closed | Req | 2012-03-15 | Add proxy type in cURL adapter | |
| #19337 | Closed | Bug | 2.0.0 | 2012-03-16 | Use of undefined variable |
| #19343 | Duplicate | Req | 2.0.0 | 2012-03-22 | Class not tested before inclusion |
| #19344 | Closed | Req | 2.0.0 | 2012-03-22 | Class presence not tested before inclusion |
| #19351 | Closed | Doc | 2.0.0 | 2012-03-26 | SSL certificate validation |
| #19515 | Closed | Req | 2.1.1 | 2012-07-18 | Custom options for CURL adapter |
| #19610 | No Feedback | Bug | 2.1.1 | 2012-09-20 | Body ignored on PATCH requests |
| #19934 | Closed | Bug | 2.1.1 | 2013-05-06 | Infinite loop with stream wrapper passed as upload |
| #19937 | Closed | Req | 2.1.1 | 2013-05-07 | cookie jar and invalid cookies |
| #20012 | Bogus | Bug | 2.1.1 | 2013-07-17 | function calculateRequestLength lose header |
| #20125 | Closed | Bug | 2.1.1 | 2013-11-11 | HTTP_Request2_Adapter_Socket class doesn't handle chunked data |
| #20174 | Duplicate | Bug | 2.2.0 | 2014-01-13 | incorrect package |
| #20175 | Closed | Req | 2014-01-13 | Please Provides LICENSE file | |
| #20176 | Closed | Bug | 2.2.0 | 2014-01-13 | Corrupted archive |
| #20227 | Bogus | Bug | 2.2.1 | 2014-03-29 | Malformed response when using GET after HEAD |
| #20228 | Closed | Bug | 2.2.1 | 2014-03-29 | invalid chunk length '' |
| #20349 | Wont fix | Req | 2.2.1 | 2014-07-22 | Add observer with a config option |
| #20401 | Closed | Req | 2.2.1 | 2014-09-08 | domainMatch function in CookieJar does not allow setting domains from same tree |
| #20440 | Closed | Bug | 2.2.1 | 2014-11-12 | Put Request contains no body |
| #20458 | Bogus | Bug | 2.2.1 | 2014-12-07 | HTTP_Request2 POST parameters ignored? |
| #20459 | Bogus | Req | Unknown | 2014-12-09 | HTTP_Request2 vs HttpRequest |
| #20462 | Closed | Bug | 2.2.1 | 2014-12-13 | Can't select HTTPS protocol |
| #20519 | Closed | Bug | 2.2.1 | 2015-03-21 | Failing test suite with latest Net_URL2 (2.1.1) |
| #20531 | Closed | Bug | 2.2.1 | 2015-04-18 | Net_URL2 2.2.0 has switched to classmap autoloader |
| #20561 | Closed | Bug | Unknown | 2015-06-11 | CookieJar compares request host w/ response cookie domain, fails after redirect |
| #21038 | Open | Req | 2.3.0 | 2016-03-07 | Response-Header "Set-Cookie" |
| #21108 | Bogus | Bug | 2.3.0 | 2016-09-02 | Requests with body always take 40ms minimum |
| #21118 | Bogus | Bug | 2.3.0 | 2016-09-21 | Package depends on non-existing version of Net_URL2 |
| #21229 | Closed | Bug | 2.3.0 | 2017-07-10 | fgets never times out with malicious server |
| #21239 | Closed | Bug | 2.3.0 | 2017-08-28 | Gzipped response body larger than 4 GiB fails size check |
| #23839 | Closed | Bug | 2.3.0 | 2019-08-04 | get_magic_quotes_runtime() is deprecated |