Как открыть URL с http-аутентификацией в Delphi?
Как открыть URL-адрес (окно браузера), для которого требуется "http-аутентификация", прозрачно передавая логин и пароль? Устаревшему приложению в Delphi нужно открыть отчет в.aspx из служб Reporting Services.
Спасибо, Селсо
3 ответа
Используйте компонент Indy TidHTTP, так как он легко справляется с требованиями аутентификации. Удалите компонент в форме и:
IdHTTP1.Request.UserName := 'xxx';
IdHTTP1.Request.Password := 'xxx';
IdHTTP1.Get(x);
Я считаю, что это работает для любой версии Indy, которая у вас может быть.
Вы можете использовать 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.
Вы можете просто указать URL с именем пользователя и паролем, если это приемлемо.