Guzzle is a PHP HTTP client that makes it easy to work with HTTP/1.1 and takes the pain out of consuming web services.
$client = new GuzzleHttp\Client();
$response = $client->get('http://guzzlephp.org');
$res = $client->get('https://api.github.com/user', ['auth' => ['user', 'pass']]);
echo $res->getStatusCode();
// 200
echo $res->getHeader('content-type');
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...'
var_export($res->json());
// Outputs the JSON decoded data
- Pluggable HTTP adapters that can send requests serially or in parallel
- Doesn't require cURL, but uses cURL by default
- Streams data for both uploads and downloads
- Provides event hooks & plugins for cookies, caching, logging, OAuth, mocks, etc.
- Keep-Alive & connection pooling
- SSL Verification
- Automatic decompression of response bodies
- Streaming multipart file uploads
- Connection timeouts
Get more information and answers with the Documentation, Forums, and IRC (#guzzlephp @ irc.freenode.net).
The recommended way to install Guzzle is through Composer.
# Install Composer
curl -sS https://getcomposer.org/installer | php
Next, update your project's composer.json file to include Guzzle:
{
"require": {
"guzzlehttp/guzzle": "~4.0"
}
}
After installing, you need to require Composer's autoloader:
require 'vendor/autoload.php';
More information can be found in the online documentation at http://guzzlephp.org/.