如何在Delphi中使用http身份验证打开URL?

时间:2011-10-07 13:32:05

标签: delphi http http-authentication delphi-5

如何打开需要“http身份验证”以透明方式传递登录名和密码的网址(浏览器窗口)? delphi中的遗留应用程序需要在Reporting Services的“.aspx”中打开报告。

谢谢,Celso

3 个答案:

答案 0 :(得分:5)

使用Indy TidHTTP组件,因为它可以轻松处理身份验证要求。将组件放在表单上,​​然后:

IdHTTP1.Request.UserName := 'xxx';
IdHTTP1.Request.Password := 'xxx';
IdHTTP1.Get(x);

我相信这适用于你可能拥有的任何Indy版本。

答案 1 :(得分:4)

您可以使用WinHTTP,查看IWinHttpRequest.SetCredentials方法

检查此示例

uses
  Variants,
  SysUtils,
  WinHttp_TLB;


Const
  HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0;
Var
  Http: IWinHttpRequest;
begin
  try
   Http := CoWinHttpRequest.Create;
   try
     Http.Open('GET', 'http://Foo.com/home', False);
     Http.SetCredentials('AUser','APassword', HTTPREQUEST_SETCREDENTIALS_FOR_SERVER);
     Http.Send(EmptyParam);

     //Do your stuff

   finally
     Http:=nil;
   end;
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.

答案 2 :(得分:1)

如果可以接受,您可以在其中输入包含用户名和密码的网址。

http://username:password@www.mysite.com/page.aspx