如何访问 Symfony 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 Contracts 上定义。

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

此方法返回一个数组,响应的有效 URL 存储在 url 键中。

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...