Delphi 使用 TNetHTTPClient:如何在重定向后给出最终的 url?
Delphi using TNetHTTPClient: how to give the final url after redirections?
我在 Delphi 10.3.1 中使用带有 GET 命令的 TNetHTTPClient,我需要在页面重定向后获得最终的 URL。
是否有任何 属性 或功能?
谢谢
似乎无法直接(public)访问与响应关联的请求实例。一个 hacky 解决方案依赖于:
IHTTPResponse
返回由 THTTPResponse
实现(实现细节)
- 保护对
THTTPResponse
的 FRequest
字段的访问
然后您可以使用以下代码访问请求实例:
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/
我在 Delphi 10.3.1 中使用带有 GET 命令的 TNetHTTPClient,我需要在页面重定向后获得最终的 URL。 是否有任何 属性 或功能? 谢谢
似乎无法直接(public)访问与响应关联的请求实例。一个 hacky 解决方案依赖于:
IHTTPResponse
返回由THTTPResponse
实现(实现细节)- 保护对
THTTPResponse
的
FRequest
字段的访问
然后您可以使用以下代码访问请求实例:
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/