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
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