如何访问 Symfony Http 客户端响应的 URL?

How can I access the URL of a Symfony Http Client response?

我使用 Symfony Http 客户端创建一个 HTTP 请求,如下所示:

 $client = HttpClient::create();

 $response = $client->request('GET', 'www.mypage.com', [
 'auth_basic' => ['user', '123'],
 ]);

 dump($response);

输出为:

Symfony\Component\HttpClient\Response\CurlResponse {#1117 ▼
  response_headers: []
  http_code: 0
  error: null
  url: www.something.com
  ....

现在我尝试输出该响应的 url

 dump($response->getContent());

但是输出是null.

如何将 url www.something.com 作为输出?

所有 HttpClient 响应都实现了 ResponseInterface,在 Symfony 合约中定义。

该接口声明了一个getInfo()方法,如图here

此方法returns一个数组,响应的有效URL存储在url

$finalUrl = $response->getInfo()['url'];

并不是说如果请求经过一个或多个 HTTP 重定向,最终解析的 URL 可能与最初请求的不一样。