Object Guzzle 6-获取有效的url

Object Guzzle 6-获取有效的url,object,guzzle,guzzle6,psr-7,guzzlehttp,Object,Guzzle,Guzzle6,Psr 7,Guzzlehttp,我刚从guzzle 3升级到guzzle 6 现在我这里有一些代码 $request = $this->_client->get($url); $response = $request->send(); $url = $response->getInfo('url'); return $url; 更新到guzzle 6后,我看到getInfo()和geteffectiveurl()已被删除。。出于某种原

我刚从guzzle 3升级到guzzle 6

现在我这里有一些代码

$request = $this->_client->get($url);
           $response = $request->send();
           $url = $response->getInfo('url');

           return $url;
更新到guzzle 6后,我看到getInfo()和geteffectiveurl()已被删除。。出于某种原因。所以我的新代码是

$res = $this->_client->request('GET', $url, ['on_stats' => function (TransferStats $stats) use (&$url) {
                $url = $stats->getEffectiveUri();
                }])->getBody()->getContents();

                return $url;
现在$url变量是一个GuzzleHttp\Psr7\Uri对象,它并不能真正解决我的问题,因为我只需要将url作为字符串返回

如何隐藏对象->

[24-Mar-2017 19:12:26 UTC] GuzzleHttp\Psr7\Uri Object
(
    [scheme:GuzzleHttp\Psr7\Uri:private] => https
    [userInfo:GuzzleHttp\Psr7\Uri:private] => 
    [host:GuzzleHttp\Psr7\Uri:private] => signup.testapp.com
    [port:GuzzleHttp\Psr7\Uri:private] => 
    [path:GuzzleHttp\Psr7\Uri:private] => /login
    [query:GuzzleHttp\Psr7\Uri:private] => username=jeff&blablablablabla
    [fragment:GuzzleHttp\Psr7\Uri:private] => 
)
转换成一个简单的字符串,我可以将其传递给另一个请求

还是我错过了什么?Guzzle 3中的getInfo(“url”)是一个问题的完美解决方案,肯定是另一个问题取代了它


谢谢

\GuzzleHttp\Psr7\Uri
有一个魔术,它会将Uri作为字符串返回给您

如果您只是想向完全相同的URI发送另一个请求

创建请求时,可以将URI作为字符串或Psr\Http\Message\UriInterface的实例提供

这意味着您对同一URI的第二个请求可以使用您拥有的
$url
对象执行

// Your existing code
// I assume this is within a method since it returns $url
$res = $this->_client->request('GET', $url, [
    'on_stats' => function (TransferStats $stats) use (&$url) {
        $url = $stats->getEffectiveUri();
    }
])->getBody()->getContents();

return $url;


// Make a second request to the same URI
// This would be in another method or something after receiving the $url from the above method
$response2 = $this->_client->request('GET', $url);

谢谢你的回复,我用GuzzleHttp\TransferStats找到了一个解决方法,并制作了一个查找最后一个URL的小方法,但这有点冗长,所以我将尝试你建议的答案谢谢!