dev-develop
dev-develop http://www.berlioz-framework.comBerlioz HTTP Client
MIT
The Requires
- php-http/httplug ~1.1
- lib-curl *
- php >=7.1
- berlioz/http-message @dev
- psr/log 1.0.2
The Development Requires
by Ronan Giron
Wallogit.com
2017 © Pedro Peláez
Berlioz HTTP Client
Berlioz HTTP Client is a PHP library to request HTTP server with continuous navigation, including cookies, sessions... Implements PSR-18 (HTTP Client), PSR-7 (HTTP message interfaces) and PSR-17 (HTTP Factories) standards., (*2)
You can install Berlioz HTTP Client with Composer, it's the recommended installation., (*3)
$ composer require berlioz/http-client
You can construct your own request object whose implements RequestInterface interface (PSR-7)., (*4)
use Berlioz\Http\Client\Client; use Berlioz\Http\Message\Request; /** @var \Psr\Http\Message\RequestInterface $request */ $request = new Request(...); $client = new Client(); $response = $client->sendRequest($request); print $response->getBody();
Methods are available to do request with defined HTTP method:, (*5)
Client::get(...)Client::post(...)Client::patch(...)Client::put(...)Client::delete(...)Client::options(...)Client::head(...)Client::connect(...)Client::trace(...)Example with Client::get():, (*6)
use Berlioz\Http\Client\Client;
$client = new Client();
$response = $client->get('https://getberlioz.com');
print $response->getBody();
You also can pass HTTP method in argument to Client::request(...) method:, (*7)
use Berlioz\Http\Client\Client;
$client = new Client();
$response = $client->request('get', 'https://getberlioz.com');
print $response->getBody();
Each method accept an array of options with $options argument.
List of options:, (*8)
Options passed in argument replace default options of client., (*9)
The session is accessible with method Client::getSession()., (*10)
The browsing history is saved in the session. If you serialize the object Session, the history is preserve., (*11)
The method Session::getHistory() returns an History object:, (*12)
use Berlioz\Http\Client\Client; $client = new Client(); $history = $client->getSession()->getHistory();
A cookie manager is available to manage cookies of session and between requests. The manager is available
with Session::getCookies() method., (*13)
If you serialize the object Session, the cookies are preserves., (*14)
HAR file of session is accessible with method Session::getHar()., (*15)
If you serialize the object Session, the HAR is preserved., (*16)
Refers to the documentation of elgigi/har-parser library: https://github.com/ElGigi/HarParser, (*17)
Default adapter used by library is CurlAdapter (if CURL extension is installed), else the StreamAdapter is used., (*18)
You can specify adapters to the client constructor, with argument adapter:, (*19)
use Berlioz\Http\Client\Client; use Berlioz\Http\Client\Adapter; $client = new Client(adapter: new Adapter\CurlAdapter(), adapter: new Adapter\StreamAdapter());
The first specified adapter is the default adapter., (*20)
If you want force an adapter for a request, you can pass is name in the request options:, (*21)
use Berlioz\Http\Client\Client;
use Berlioz\Http\Client\Adapter;
$client = new Client(adapter: new Adapter\CurlAdapter(), adapter: new Adapter\StreamAdapter());
$client->get('https://getberlioz.com', options: ['adapter' => 'stream']);
List of adapters:, (*22)
Berlioz\Http\Client\Adapter\CurlAdapter
Berlioz\Http\Client\Adapter\StreamAdapter
Berlioz\Http\Client\Adapter\HarAdapter
The HarAdapter is specially made to simulate a navigation, coming from a desktop browser for example., (*23)
It's very useful for test units. You only need to store your cleaned HAR file into your repository to launch tests with simulated HTTP dialogs., (*24)
use Berlioz\Http\Client\Client;
use Berlioz\Http\Client\Adapter\HarAdapter;
use ElGigi\HarParser\Parser;
// Create HAR object from library `elgigi/har-parser`
$har = (new Parser())->parse('/path/of/my/file.har', contentIsFile: true);
$client = new Client(adapter: new HarAdapter(har: $har));
$client->get('https://getberlioz.com'); // Get response from HAR object, without making an HTTP request
Har adapter accept an option strict (default: false) to force the way of navigation., (*25)
You can create an adapter for your project.
You must implement the interface Berlioz\Http\Client\Adapter\AdapterInterface., (*26)
Berlioz HTTP Client
MIT