AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Webseite ansprechen mit WinInet Funktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Webseite ansprechen mit WinInet Funktionen

Ein Thema von little_budda · begonnen am 18. Jun 2007 · letzter Beitrag vom 18. Jun 2007
Antwort Antwort
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
CCRDude
(Gast)

n/a Beiträge
 
#2

Re: Webseite ansprechen mit WinInet Funktionen

  Alt 18. Jun 2007, 18:55
Aus der MSDN zu InternetOpenUrl:
Zitat:
To retrieve a specific error message, call GetLastError. To determine why access to the service was denied, call InternetGetLastResponseInfo.
Beispiel für WinINet-Internet-Zugriffe, allerdings nicht mit InternetOpenUrl, sondern den Http*-Funktionen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Webseite ansprechen mit WinInet Funktionen

  Alt 18. Jun 2007, 18:59
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz