Thema: FreePascal URL wininet ermitteln

Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#2

AW: URL wininet ermitteln

  Alt 23. Sep 2011, 12:17
Die folgenden Einträge in der MSDN könnten dir weiterhelfen:

InternetOpenUrl: Du musst wahrschleinlich das Flag INTERNET_FLAG_NO_AUTO_REDIRECT setzen, damit du das Ziel des Redirects ermitteln kannst.
HttpQueryInfo: Hiermit kannst du die Headerdaten, welche der Server geschickt hat, betrachten.
Query Info Flags: Diese Flags musst du in der oben genannten HttpQueryInfo angeben. Besonders HTTP_QUERY_LOCATION und HTTP_QUERY_STATUS_CODE sind interessant.

Deine prinzipielle Vorgehensweise sollte diese sein:
  • Öffne die URL mittels InternetOpenUrl und dem genannten Flag
  • Hole dir den Statuscode der Requests (HttpQueryInfo mit HTTP_QUERY_STATUS_CODE); ist dieser z. B. 301 (beachte dabei die Liste der existierenden Codes), dann sollst du weitergeleitet werden.
  • Also nun die Ziellocation ermitteln (HttpQueryInfo mit HTTP_QUERY_LOCATION)
  • Neuen Aufruf von InternetOpenUrl mit dem neuen Ziel.

Das sollte funktionieren. Bedenke bitte, dass ich das nicht getestet, sondern nur an Hand der verlinkten Dokumentation hergeleitet habe.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons

Geändert von JamesTKirk (23. Sep 2011 um 12:18 Uhr) Grund: Schlechtschreibung
  Mit Zitat antworten Zitat