问题描述
使用 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 Contracts 上定义。
该接口声明了一个 getInfo()
方法,如 here 所示。
此方法返回一个数组,响应的有效 URL 存储在 url
键中。
$finalUrl = $response->getInfo()['url'];
并不是说如果请求经过一个或多个 HTTP 重定向,最终解析的 URL 可能与最初请求的 URL 不同。