Как открыть URL с http-аутентификацией в Delphi? - PullRequest
4 голосов
/ 07 октября 2011

Как открыть URL-адрес ( окно браузера ), которому требуется «http-аутентификация», пропускающая логин и пароль прозрачным способом?Устаревшему приложению в Delphi нужно открыть отчет в .aspx из служб Reporting Services.

Спасибо, Селсо

Ответы [ 3 ]

5 голосов
/ 07 октября 2011

Используйте компонент Indy TidHTTP, поскольку он легко справляется с требованиями аутентификации. Перетащите компонент в форму и:

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

Я считаю, что это работает для любой версии Indy, которая у вас есть.

4 голосов
/ 07 октября 2011

Вы можете использовать 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.
1 голос
/ 07 октября 2011

Вы можете просто указать URL с именем пользователя и паролем, если это приемлемо.

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

...