We are very pleased to announce the release of HTTP client extension version 2.0.1 which brings 10 enhancements and bug fixes. See CHANGELOG for details.
The most signiifcant change is introduction of beforeSend
and afterSend
events for the HTTP request:
use yii\httpclient\Client;
use yii\httpclient\Request;
use yii\httpclient\RequestEvent;
$client = new Client();
$request = $client->createRequest()
->setMethod('get')
->setUrl('http://api.domain.com')
->setData(['param' => 'value']);
// Ensure signature generation based on final data set:
$request->on(Request::EVENT_BEFORE_SEND, function (RequestEvent $event) {
$data = $event->request->getData();
$signature = md5(http_build_query($data));
$data['signature'] = $signature;
$event->request->setData($data);
});
// Normalize response data:
$request->on(Request::EVENT_AFTER_SEND, function (RequestEvent $event) {
$data = $event->response->getData();
$data['content'] = base64_decode($data['encoded_content']);
$event->response->setData($data);
});
$response = $request->send();
Please refer to documentation for more details.