Einzelnen Beitrag anzeigen

dh-clfs

Registriert seit: 6. Mai 2005
Ort: Germany-Berlin
5 Beiträge
 
Delphi XE Enterprise
 
#1

Indy10 IdHTTP und WebClient

  Alt 6. Mai 2010, 14:52
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.
Frank Schmidt
  Mit Zitat antworten Zitat