1

我在 Delphi 10.3.1 中使用带有 GET 命令的 TNetHTTPClient,我需要在页面重定向后获取最终 URL。它有什么属性或功能吗?谢谢。

4

1 回答 1

2

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

  1. IHTTPResponse返回由THTTPResponse(实现细节)实现
  2. FRequest受保护的字段访问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;

输出是:

http://www.google.com/
于 2019-05-28T15:00:16.763 回答