Delphi使用TNetHTTPClient:重定向后如何给出最终的URL?

时间:2019-05-28 12:13:30

标签: delphi delphi-10.3-rio

我在Delphi 10.3.1中使用带有GET命令的TNetHTTPClient,并且在页面重定向后需要获取最终的URL。 是否有任何属性或功能? 谢谢。

1 个答案:

答案 0 :(得分:2)

似乎没有对与响应关联的请求实例的直接(公共)访问。 hacky解决方案依赖于:

    返回的
  1. IHTTPResponseTHTTPResponse(实施细节)实现
  2. 保护了对FRequest的{​​{1}}字段的访问

然后,您可以使用以下代码访问请求实例:

THTTPResponse

输出为:

type
  THTTPResponseAccess = class(THTTPResponse);

procedure TForm2.Button1Click(Sender: TObject);
var
  Response: THTTPResponse;
  Request: IURLRequest;
begin
  Response := NetHTTPClient1.Get('http://google.com') as THTTPResponse;
  Request := THTTPResponseAccess(Response).FRequest;
  ShowMessage(Request.URL.ToString);
end;