且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在Delphi中使用WinHTTP进行重定向后,是否可以获取最终URL?

更新时间:2023-11-26 16:41:34

您可以使用类似的

function GetFinalURL(const AMainURL: string): string;
var
  http: Variant;
begin
  Result := '';
  http := CreateOleObject('WinHttp.WinHttpRequest.5.1');
  http.Option(6) := False;
  http.open('GET', AMainURL, false);
  http.send;
  if http.Status = 302 then
    Result := http.getResponseHeader('Location')
  else
  Result := AMainURL;
end;

使用 Indy

function GetFinalURL(const AMainURL: string): string;
var
  idHTTP: TIdHTTP;
begin
  Result := '';
  idHTTP := TIdHTTP.Create(nil);
  try
    idHTTP.HandleRedirects := True;
    try
      idHTTP.Get(AMainURL);
      Result := idHTTP.Request.URL;
    except
    end;
  finally
    idHTTP.Free;
  end;
end;