<?xml version="1.0" encoding="ISO-8859-1"?>
<package packagerversion="1.10.13" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>HTTP_Request2</name>
<channel>pear.php.net</channel>
<extends>HTTP_Request</extends>
<summary>Provides an easy way to perform HTTP requests.</summary>
<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...</description>
<lead>
<name>Alexey Borzov</name>
<user>avb</user>
<email>avb@php.net</email>
<active>yes</active>
</lead>
<date>2023-11-01</date>
<time>20:03:16</time>
<version>
<release>2.6.0</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
* 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
</notes>
<contents>
<dir name="/">
<file md5sum="81b94fe3f5aad81231fe5c5440b7cbbb" name="HTTP/Request2/Adapter/Curl.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="2c606ad03c86bf425d56efebedb97331" name="HTTP/Request2/Adapter/Mock.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="1bc53a7d450ae228d103a6a2ee5a40c8" name="HTTP/Request2/Adapter/Socket.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="3df137bc6a2d9667f56cb92c6bea726a" name="HTTP/Request2/Observer/Log.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="e3268a3edaac30a2656038625a233229" name="HTTP/Request2/Observer/UncompressingDownload.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="b2b2c26afad5f85eff31bde32922a60a" name="HTTP/Request2/Adapter.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="d358858512d2f79bac5803b42471e978" name="HTTP/Request2/ConnectionException.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="6761ec824b7eb6a4608a95979e63902d" name="HTTP/Request2/CookieJar.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
<tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
</file>
<file md5sum="82dfe4edf7760cb4d8912f050644251a" name="HTTP/Request2/Exception.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="24385fe0eefe7869a5921ce7ac8030c5" name="HTTP/Request2/LogicException.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="bed90ef51aecf640f4a0e70b5b6be2ab" name="HTTP/Request2/MessageException.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="5c1cae794cd7bda24730c6d253e5c6eb" name="HTTP/Request2/MultipartBody.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="606b8ac8903b169894dbc919922fe394" name="HTTP/Request2/NotImplementedException.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="29ed9a6a30e8a7baeb61798c2b3dc9dd" name="HTTP/Request2/SocketWrapper.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="ab45f702ad91928d5f2ed8b71fc17fc1" name="HTTP/Request2/SOCKS5.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="8ea0569b63a7c01bbe9489aa100428e4" name="HTTP/Request2/Response.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="878c0ecc74ef8f400832a58175ff52dc" name="HTTP/Request2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="22d7f11b85dd00bd8919a4226a5a0388" name="tests/_files/bug_15305" role="test" />
<file md5sum="16f23f14921a2aa607c85664efa47d41" name="tests/_files/bug_18169" role="test" />
<file md5sum="fc94fb0c3ed8a8f909dbc7630a0987ff" name="tests/_files/empty.gif" role="test" />
<file md5sum="120ea8a25e5d487bf68b5f7096440019" name="tests/_files/plaintext.txt" role="test" />
<file md5sum="d1d2beb78782f56e8611100a009fb1f6" name="tests/_files/response_cookies" role="test" />
<file md5sum="12d80db889f528922a31b5c03f693647" name="tests/_files/response_deflate" role="test" />
<file md5sum="c36530c79c044fde1745b244c38d381f" name="tests/_files/response_gzip" role="test" />
<file md5sum="722328bfe89a9c9f7de5a020ed2c4589" name="tests/_files/response_gzip_broken" role="test" />
<file md5sum="1fb55dfe18831f8fe6280280e72ad216" name="tests/_files/response_headers" role="test" />
<file md5sum="1300ecb05dcfbfd0f660d85f7b822f75" name="tests/_network/basicauth.php" role="test" />
<file md5sum="57a14362482d07c4cb65efd88af82aad" name="tests/_network/bug19934.php" role="test" />
<file md5sum="046ec21ddb24d17de11191142f17634e" name="tests/_network/bug20228.php" role="test" />
<file md5sum="d936464dcbfe85db34a5e9e0caf3f09b" name="tests/_network/cookies.php" role="test" />
<file md5sum="28072362d7978dbf45326dfb365d7c50" name="tests/_network/digestauth.php" role="test" />
<file md5sum="743e78c9b9228d1587cfc560b524c005" name="tests/_network/download.php" role="test" />
<file md5sum="025f47711d0cbfa81c22281514b03098" name="tests/_network/getparameters.php" role="test" />
<file md5sum="559b6c355e6808b4a05d4cbcc8de9c8b" name="tests/_network/incompletebody.php" role="test" />
<file md5sum="76fc75c6690831078c04c683004ac529" name="tests/_network/postparameters.php" role="test" />
<file md5sum="c7b06c6a61e1117d5593f2328b7df69d" name="tests/_network/rawpostdata.php" role="test" />
<file md5sum="9bcac94a128f4ca48d03673150dc0355" name="tests/_network/redirects.php" role="test" />
<file md5sum="fdbad4b54f39dd99a7db23131ea5a608" name="tests/_network/setcookie.php" role="test" />
<file md5sum="c0b58a16f0d6f33d01a779d3ef098cd3" name="tests/_network/timeout.php" role="test" />
<file md5sum="a6e122470853fff67d412f3267479bcf" name="tests/_network/uploads.php" role="test" />
<file md5sum="fe63a10112291a44572e3fa4bc2bcc07" name="tests/Request2/Adapter/CommonNetworkTest.php" role="test" />
<file md5sum="df55d1a4335fb6f5041db986fc7e0f7a" name="tests/Request2/Adapter/CurlTest.php" role="test" />
<file md5sum="10763c9aee1d48dd43d1433bca830456" name="tests/Request2/Adapter/EventSequenceObserver.php" role="test" />
<file md5sum="7e75eee398c4a90d98e1bef6efa5b139" name="tests/Request2/Adapter/HeaderObserver.php" role="test" />
<file md5sum="13375bb49ce5fc15bb9868e8c0dbb7e8" name="tests/Request2/Adapter/MockTest.php" role="test" />
<file md5sum="93cac67453e3b636d898601ec7001d55" name="tests/Request2/Adapter/SlowpokeBody.php" role="test" />
<file md5sum="89df375c49efdd2d043eebb841b911d0" name="tests/Request2/Adapter/SocketProxyTest.php" role="test" />
<file md5sum="d9a077b6938c1d7915de8933ae123f46" name="tests/Request2/Adapter/SocketTest.php" role="test" />
<file md5sum="ab9b010f059b8936535349d1e851f27b" name="tests/Request2/Adapter/UploadSizeObserver.php" role="test" />
<file md5sum="b28285f3d28e7e83661432a09f3bc9bb" name="tests/Request2/CookieJarTest.php" role="test" />
<file md5sum="299dc04dbb9d19ca4ff7804e771d8ed8" name="tests/Request2/MultipartBodyTest.php" role="test" />
<file md5sum="955c6bad2aadb8abb3068ca93b4709c3" name="tests/Request2/ResponseTest.php" role="test" />
<file md5sum="6e297ef4f197bf35bab38a8907ae38e4" name="tests/MockObserver.php" role="test" />
<file md5sum="5c8d0c9a0dbaaa41a07606b5ca1e9126" name="tests/NetworkConfig.php.dist" role="test" />
<file md5sum="1c9e41a433df231a6cffd3955fc472b7" name="tests/ObserverTest.php" role="test" />
<file md5sum="05bf285854eb50d0c8e1f74a1f65ccd5" name="tests/Request2Test.php" role="test" />
<file md5sum="236caed62ad058509e62c68476bd1789" name="tests/TestHelper.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="9de7b683e45c54d5d091d017e077ea70" name="docs/LICENSE" role="doc" />
<file md5sum="571d899be53b4b7c5e3159db11deb007" name="docs/examples/upload-rapidshare.php" role="doc" />
<file md5sum="b5847f7e0ce516304981ab4dd0fbf59c" name="data/generate-list.php" role="data" />
<file md5sum="a6b85531cd25bb0a62b960bca1a17543" name="data/public-suffix-list.php" role="data" />
</dir>
</contents>
<dependencies>
<required>
<php>
<min>5.6.0</min>
</php>
<pearinstaller>
<min>1.9.2</min>
</pearinstaller>
<package>
<name>Net_URL2</name>
<channel>pear.php.net</channel>
<min>2.2.0</min>
</package>
<package>
<name>PEAR</name>
<channel>pear.php.net</channel>
<min>1.9.2</min>
</package>
</required>
<optional>
<extension>
<name>curl</name>
</extension>
<extension>
<name>fileinfo</name>
</extension>
<extension>
<name>zlib</name>
</extension>
<extension>
<name>openssl</name>
</extension>
</optional>
</dependencies>
<phprelease>
<filelist>
<install as="LICENSE" name="docs/LICENSE" />
<install as="examples/upload-rapidshare.php" name="docs/examples/upload-rapidshare.php" />
<install as="generate-list.php" name="data/generate-list.php" />
<install as="public-suffix-list.php" name="data/public-suffix-list.php" />
<install as="MockObserver.php" name="tests/MockObserver.php" />
<install as="NetworkConfig.php.dist" name="tests/NetworkConfig.php.dist" />
<install as="ObserverTest.php" name="tests/ObserverTest.php" />
<install as="Request2Test.php" name="tests/Request2Test.php" />
<install as="TestHelper.php" name="tests/TestHelper.php" />
<install as="_files/bug_15305" name="tests/_files/bug_15305" />
<install as="_files/bug_18169" name="tests/_files/bug_18169" />
<install as="_files/empty.gif" name="tests/_files/empty.gif" />
<install as="_files/plaintext.txt" name="tests/_files/plaintext.txt" />
<install as="_files/response_cookies" name="tests/_files/response_cookies" />
<install as="_files/response_deflate" name="tests/_files/response_deflate" />
<install as="_files/response_gzip" name="tests/_files/response_gzip" />
<install as="_files/response_gzip_broken" name="tests/_files/response_gzip_broken" />
<install as="_files/response_headers" name="tests/_files/response_headers" />
<install as="_network/basicauth.php" name="tests/_network/basicauth.php" />
<install as="_network/bug19934.php" name="tests/_network/bug19934.php" />
<install as="_network/bug20228.php" name="tests/_network/bug20228.php" />
<install as="_network/cookies.php" name="tests/_network/cookies.php" />
<install as="_network/digestauth.php" name="tests/_network/digestauth.php" />
<install as="_network/download.php" name="tests/_network/download.php" />
<install as="_network/getparameters.php" name="tests/_network/getparameters.php" />
<install as="_network/incompletebody.php" name="tests/_network/incompletebody.php" />
<install as="_network/postparameters.php" name="tests/_network/postparameters.php" />
<install as="_network/rawpostdata.php" name="tests/_network/rawpostdata.php" />
<install as="_network/redirects.php" name="tests/_network/redirects.php" />
<install as="_network/setcookie.php" name="tests/_network/setcookie.php" />
<install as="_network/timeout.php" name="tests/_network/timeout.php" />
<install as="_network/uploads.php" name="tests/_network/uploads.php" />
<install as="Request2/CookieJarTest.php" name="tests/Request2/CookieJarTest.php" />
<install as="Request2/MultipartBodyTest.php" name="tests/Request2/MultipartBodyTest.php" />
<install as="Request2/ResponseTest.php" name="tests/Request2/ResponseTest.php" />
<install as="Request2/Adapter/CommonNetworkTest.php" name="tests/Request2/Adapter/CommonNetworkTest.php" />
<install as="Request2/Adapter/CurlTest.php" name="tests/Request2/Adapter/CurlTest.php" />
<install as="Request2/Adapter/EventSequenceObserver.php" name="tests/Request2/Adapter/EventSequenceObserver.php" />
<install as="Request2/Adapter/HeaderObserver.php" name="tests/Request2/Adapter/HeaderObserver.php" />
<install as="Request2/Adapter/MockTest.php" name="tests/Request2/Adapter/MockTest.php" />
<install as="Request2/Adapter/SlowpokeBody.php" name="tests/Request2/Adapter/SlowpokeBody.php" />
<install as="Request2/Adapter/SocketProxyTest.php" name="tests/Request2/Adapter/SocketProxyTest.php" />
<install as="Request2/Adapter/SocketTest.php" name="tests/Request2/Adapter/SocketTest.php" />
<install as="Request2/Adapter/UploadSizeObserver.php" name="tests/Request2/Adapter/UploadSizeObserver.php" />
</filelist>
</phprelease>
<changelog>
<release>
<date>2022-01-06</date>
<version>
<release>2.5.1</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
* The package runs under PHP 8.1 without `E_DEPRECATED` messages
https://github.com/pear/HTTP_Request2/issues/25
* Updated Public Suffix List
</notes>
</release>
<release>
<date>2021-07-12</date>
<version>
<release>2.5.0</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
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/23
Changed
* 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
</notes>
</release>
<release>
<date>2020-09-24</date>
<version>
<release>2.4.2</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
Socket adapter could prematurely end receiving the response body due to
fread() call returning an empty string
</notes>
</release>
<release>
<date>2020-08-01</date>
<version>
<release>2.4.1</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
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
</notes>
</release>
<release>
<date>2020-07-26</date>
<version>
<release>2.4.0</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
* 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 List
The package is now 100% autoload-compatible, when installed with composer it
no longer uses include-path and does not contain require_once statements
</notes>
</release>
<release>
<date>2016-02-13</date>
<version>
<release>2.3.0</release>
<api>2.3.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
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 CI
Changes 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 changed
Note to Composer users: next package version will probably get rid of 'include-path'
setting in composer.json favour of using autoloader.
</notes>
</release>
<release>
<date>2014-01-16</date>
<version>
<release>2.2.1</release>
<api>2.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
<notes>
* 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.
</notes>
</release>
<release>
<date>2014-01-12</date>
<version>
<release>2.2.0</release>
<api>2.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
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
</notes>
</release>
<release>
<date>2012-04-08</date>
<version>
<release>2.1.1</release>
<api>2.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
Fixes for SOCKS5 proxies support in Socket adapter
</notes>
</release>
<release>
<date>2012-04-07</date>
<version>
<release>2.1.0</release>
<api>2.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
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
</notes>
</release>
<release>
<date>2011-10-20</date>
<version>
<release>2.0.0</release>
<api>2.0.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
2.0.0RC2 repackaged as stable and depending on stable Net_URL2. No code changes.
</notes>
</release>
<release>
<date>2011-10-01</date>
<version>
<release>2.0.0RC2</release>
<api>2.0.0</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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
</notes>
</release>
<release>
<date>2011-05-06</date>
<version>
<release>2.0.0RC1</release>
<api>2.0.0</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
SSL options for Curl Adapter are always set, this prevents errors when
redirecting from HTTP to HTTPS (bug #18443)
</notes>
</release>
<release>
<version>
<release>2.0.0beta3</release>
<api>2.0.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2011-04-03</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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)
</notes>
</release>
<release>
<version>
<release>2.0.0beta2</release>
<api>2.0.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2011-03-25</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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)
</notes>
</release>
<release>
<version>
<release>2.0.0beta1</release>
<api>2.0.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2011-02-27</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
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)
</notes>
</release>
<release>
<version>
<release>0.6.0</release>
<api>0.6.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2011-02-14</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
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)
</notes>
</release>
<release>
<version>
<release>0.5.2</release>
<api>0.5.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2010-04-21</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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)
</notes>
</release>
<release>
<version>
<release>0.5.1</release>
<api>0.5.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2009-11-21</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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.
</notes>
</release>
<release>
<version>
<release>0.5.0</release>
<api>0.5.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2009-11-18</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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
</notes>
</release>
<release>
<version>
<release>0.4.1</release>
<api>0.4.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2009-09-14</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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
</notes>
</release>
<release>
<version>
<release>0.4.0</release>
<api>0.4.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2009-05-03</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
* 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)
</notes>
</release>
<release>
<version>
<release>0.3.0</release>
<api>0.3.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2009-01-28</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
API changes:
* Removed HTTP_Request2::getConfigValue() method
Feature 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)
</notes>
</release>
<release>
<version>
<release>0.2.0</release>
<api>0.2.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2009-01-07</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
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 array
Other 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=47030
Fixes:
* Fixed 'data error' when processing response encoded by 'deflate'
encoding (bug #15305)
* Curl Adapter now passes full request headers in 'sentHeaders' event
</notes>
</release>
<release>
<version>
<release>0.1.0</release>
<api>0.1.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2008-11-17</date>
<license uri="http://opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>
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)
</notes>
</release>
</changelog>
</package>