Php – How to read the response effective URL in Guzzle ~6.0


I've been searching for about 2 hours and I can't figure it out how to read the final response uri.

In previous versions of PHP Guzzle you just call $response->getEffectiveUrl() and you get it.

I expected to have something similar in the new version so the final code looks like this:

$response = $httpClient->post('', [
    'form_params' => [
        'user'   => $user,
        'padss'  => $pass,

$url = $response->getEffectiveUrl();

But in the latest version $response is now a GuzzleHttp\Psr7\Response and there is no method which allow me to retrieve the uri.

I read about the redirects here ( but it says nothing about

UPDATE: The 6.1 version now allows you to easily do this:

Thanks @YauheniPrakopchyk

Best Solution

Guzzle 6.1 solution right from the docs.

use GuzzleHttp\Client;
use GuzzleHttp\TransferStats;

$client = new Client;

$client->get('', [
    'query'   => ['get' => 'params'],
    'on_stats' => function (TransferStats $stats) use (&$url) {
        $url = $stats->getEffectiveUri();

echo $url; //