如何访问 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 可能与最初请求的不一样。
我使用 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 可能与最初请求的不一样。