Hallo zusammen,
Ziel ist mit der Anwendung ein Webservice zu nutzen, der erst nach Anmeldung an der ASP-Website erreichbar ist.
Die Anmeldung mittels TIdHTTP funktioniert wunderbar. Liefert mir die SessionID auch an den CookieManager zurück.
Auch der WebClient an sich funktioniert, jedoch eröffnet er eine neue Instanz. Ich habe bereits mehrere Webseiten durchsucht wie ich die bereits durch TIdHTTP genutzte Session an den WebClient übergeben kann.
Delphi-Quellcode:
...
interface
...
uses
...,IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdCookieManager,
...
implementation
uses webservice;
...
procedure TForm1.est1Click(Sender: TObject);
var
response : tStringstream;
CookieManager : TidCookiemanager;
ws: WebService_x0020_for_x0020_Updating_x0020_Soap;
begin
idhttp1.Create(nil);
CookieManager := tidcookiemanager.create(nil);
idhttp1.AllowCookies := true;
idhttp1.CookieManager := CookieManager;
idhttp1.Request.Connection := 'Keep-Alive';
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded';
idhttp1.request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)';
idhttp1.HandleRedirects := true;
try
idhttp1.get(myURL+'/login.aspx?psw'+MyPassword+'&usr'+MyUser, response);
if pos('welcome.aspx',response.DataString) = 0 then Showmessage('Login failed')
else begin
ws := GetWebService_x0020_for_x0020_Updating_x0020_Soap(true);
ws.CleanUp;
end;
finally
response.Free;
idhttp1.Free;
end;
end;
Hat jemand eine Idee?
Vielen Dank im Voraus.