AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke HTTP Header auslesen. Ohne Indy
Thema durchsuchen
Ansicht
Themen-Optionen

HTTP Header auslesen. Ohne Indy

Ein Thema von Cubysoft · begonnen am 26. Jan 2016 · letzter Beitrag vom 27. Mai 2016
 
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#1

HTTP Header auslesen. Ohne Indy

  Alt 26. Jan 2016, 20:47
Hallo,

ich muss derzeit mit meiner Software mit einer API kommunizieren. Im Header der HTTP Antwort stehen dann Informationen, die ich benötige. Ich hatte diesen Teil bisher immer mit Indy und dem SSL Socket gelöst, aber leider schlagen Virenprogramme (zB Antivir) grundsätzlich immer an, wenn ich diese Klassen verwende. Deshalb suche ich nach einer anderen Möglichkeit, die Daten auszulesen. Ich habe mitlerweile alle API-Anfragen, welche den HTTP Header nicht auslesen müssen auf eine Funktion umgestellt, die mit WININET arbeitet. Leider liefert mir diese Funktion (habe ich nicht selbst geschrieben, nur im Internet gefunden) natürlich nicht den HTTP Header mit.

Deswegen lange Rede kurzer Sinn: Wie kann ich den HTTP Header auslesen ohne Indy zu verwenden? Am besten mit WININET, weil das bisher immer super funktioniert hat!

Das ist die Funktion die ich derzeit benutze (diese liefert keinen Header mit)

Delphi-Quellcode:
function GetUrlContent(const Url: string): UTF8String;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1023] of byte;
  BytesRead: dWord;
  StrBuffer: UTF8String;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 2009', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(NetHandle) then
    try
      UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if Assigned(UrlHandle) then
        try
          repeat
            InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
            SetString(StrBuffer, PAnsiChar(@Buffer[0]), BytesRead);
            Result := Result + StrBuffer;
          until BytesRead = 0;
        finally
          InternetCloseHandle(UrlHandle);
        end
      else
        raise Exception.CreateFmt('Cannot open URL %s', [Url]);
    finally
      InternetCloseHandle(NetHandle);
    end
  else
    raise Exception.Create('Unable to initialize Wininet');
end;
Vielen Dank für eure Mühe!
Tobias
  Mit Zitat antworten Zitat
 


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 02:25 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 by Thomas Breitkreuz