AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke HTTP_QUERY_LOCATION gibt leeren String aus

HTTP_QUERY_LOCATION gibt leeren String aus

Ein Thema von DavidKlimas · begonnen am 27. Mär 2013 · letzter Beitrag vom 28. Mär 2013
Antwort Antwort
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#1

HTTP_QUERY_LOCATION gibt leeren String aus

  Alt 27. Mär 2013, 20:03
Guten Abend alle zusammen.

Ich hab eine Funktion die überprüft ob eine URL existiert und mit die exakte URL zurückgibt (im fall einer weiterleitung). Leider ist der wert immer leer. Woran kann der fehler liegen ?

Delphi-Quellcode:
var
  hSession, hfile: hInternet;
  infoBuffer: array [0..512] of char;
  infoBuffer2: array [0..512] of char;
  dummy: DWORD;
  bufLen: DWORD;
Delphi-Quellcode:
  hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if assigned(hsession) then
  begin
    hfile := InternetOpenUrl(hsession,PChar(url),nil,0, INTERNET_FLAG_NO_UI,0);
    {Get Validation}
    dummy := 0;
    bufLen := Length(infoBuffer);
    HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @infoBuffer[0], bufLen, dummy);
    result := (infoBuffer ='200') or (infoBuffer ='302');
    if result then
    begin
      {Get Link}
      dummy := 0;
      bufLen := Length(infoBuffer2);
      HttpQueryInfo(hfile, HTTP_QUERY_LOCATION, @infoBuffer2, bufLen, dummy);
      URL := infoBuffer2;
    End;
    if assigned(hfile) then InternetCloseHandle(hfile);
    InternetCloseHandle(hsession);
  end;
Danke für die Hilfe.
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: HTTP_QUERY_LOCATION gibt leeren String aus

  Alt 28. Mär 2013, 00:19
Hallo,

wenn ich es richtig verstehe, dann möchtest Du im Falle, dass die angeforderte URL weiterleitet, die Adresse, an die weitergeleitet wird, ermitteln. Wenn dem so ist, dann musst Du das Weiterleiten unterbinden, ansonsten bekommst Du die Headerdaten, die der umgeleitete Webserver sendet (da steht aber meist keine URI drin).

Versuchs mal mit:
hfile := InternetOpenUrl (hsession, PChar (url), nil, 0, INTERNET_FLAG_NO_AUTO_REDIRECT, 0);

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#3

AW: HTTP_QUERY_LOCATION gibt leeren String aus

  Alt 28. Mär 2013, 16:46
Volker,

jetzt klappt alles wie es soll. Hier ist die neue funktion. Ich musste auch der Errorcode 301 der anscheinend bei einem redirekt auftritt...

Delphi-Quellcode:
  hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if assigned(hsession) then
  begin
    repeat
    hfile := InternetOpenUrl (hsession, PChar (url), nil, 0, INTERNET_FLAG_NO_AUTO_REDIRECT, 0);
    {Get Validation}
    Buflen := 512;
    Dummy := 0;
    HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @infoBuffer[0], Buflen, Dummy);
    result := (infoBuffer ='200') or (infoBuffer ='301') or (infoBuffer ='302');
    if result then
    begin
      {Get Link}
      Buflen := sizeof(infoBuffer2);
      Dummy := 0;
      HttpQueryInfo(hfile, HTTP_QUERY_LOCATION, @infoBuffer2[0], Buflen, Dummy);
      Str1 := infoBuffer2;
      if Str1 = url then Str1 := '';
      if Str1 <> 'then url := Str1;
    End;
    if assigned(hfile) then InternetCloseHandle(hfile);
    until (result = False) OR (Str1 = '');
    InternetCloseHandle(hsession);
  end;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf