Einzelnen Beitrag anzeigen

Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

Webseite ansprechen mit WinInet Funktionen

  Alt 18. Jun 2007, 18:40
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:
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 wäre sehr dankbar für eine Hilfe oder einen Tipp.

Ich hab es vorher versucht mit "ShellExecute"
aber da lande ich immer bei der Benutzeranmeldung des Servers.

Gruß Holger.

Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat