![]() |
Webseite ansprechen mit WinInet Funktionen
Hallo,
ich möchte eine Seite auf einem Webserver aufrufen welcher einen Benutzeranmeldung erfordert. Ich verwender hierfür die WinInet Funktionen. Die Authorisierung am Server klappt auch wunderbar, nur bekomme ich das ansprechen der Webseite nicht hin. Ich verwende folgenden Code:
Delphi-Quellcode:
Ich wäre sehr dankbar für eine Hilfe oder einen Tipp.
function resetBgr(szHost, szUser, szPW: pchar):boolean;
var sUrlLine : string; begin result := true; // vorbelegen setzeProtokollEintrag('Reset auslösen auf :' + string(szhost), true); Application.ProcessMessages; sUrlLine := 'http://' + string(szHost) +'/ResetWb?HvReset=True'; // Connect aufbauen hIntSession := InternetOpen('RESET-CLIENT', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if hIntSession = nil then begin setzeProtokollEintrag('Internet-Session konnte nicht geöffnet werden', true); result := false; exit; end else begin InternetSetStatusCallback(hIntSession, @StatusCallback); setzeProtokollEintrag('Internet-Session erfolgreich angelegt', true); end; // Anmelden hFTPSession := InternetConnect(hIntSession, szHost, INTERNET_DEFAULT_HTTP_PORT, szUser, szPW, INTERNET_SERVICE_HTTP, 0, 0); if hFTPSession = nil then begin setzeProtokollEintrag('HTTP-Session konnte nicht geöffnet werden', true); InternetCloseHandle(hIntSession); // Connect schließen result := false; end else begin setzeProtokollEintrag('HTTP-Session erfolgreich angelegt', true); // URL ansprechen hDummyValue := InternetOpenUrl(hIntSession, PChar(sUrlLine), nil, 0, INTERNET_FLAG_RELOAD, 0); // Hier ist mein Problem. // Der Rückgabewert ist immer NIL if (hDummyValue = nil) then begin setzeProtokollEintrag('Der Dienst konnte nicht angesprochen werden', true); result := false; end else begin InternetSetStatusCallback(hIntSession, @StatusCallback); setzeProtokollEintrag('Die Anforderung wurde erfolgreich abgesetzt', true); end; InternetCloseHandle(hIntSession); // Connect schließen end; end; Ich hab es vorher versucht mit "ShellExecute" aber da lande ich immer bei der Benutzeranmeldung des Servers. Gruß Holger. :gruebel: |
Re: Webseite ansprechen mit WinInet Funktionen
Aus der MSDN zu InternetOpenUrl:
Zitat:
![]() |
Re: Webseite ansprechen mit WinInet Funktionen
Hallo Holger,
HTTP ist ein stateless protocol - die Tatsache, dass du dich angemeldet hast, muss bei einem Seitenaufruf innerhalb des realm irgendwie mitgeteilt werden. Das kann ein Cookie sein, der dann als Header übermittelt wird, oder eine Session-Id, die als URL-Parameter auftauchen muss. Du sendest keine Header und auch keine Session-ID. Was bei dir genau benötigt wird, dass kannst du feststellen indem du eine Session im normalen Browser analysierst. Ich mache das mit dem FireFox und der Extension LiveHTTPHeaders. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz