AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Keine "CheckURL" - Funktion in der DP zu finden ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Keine "CheckURL" - Funktion in der DP zu finden ?!

Ein Thema von turboPASCAL · begonnen am 8. Nov 2009 · letzter Beitrag vom 25. Jan 2010
 
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Keine "CheckURL" - Funktion in der DP zu finden ?!

  Alt 8. Nov 2009, 15:19
Hi,

Das gibts doch nicht, ich finde keine "CheckURL" - Funktion in der DP.

Habe jetzt bestimmt 20 min in der DP gesucht, umd dann doch selbst eine gebastelt.

Kurzversion:
Delphi-Quellcode:
// Windows API - Internet

uses WinINet;

function CheckUrl(url: string; const AutoAddHTMLID: Boolean = True): boolean;
var
  hInet: HINTERNET;
  hConnect: HINTERNET;
  infoBuffer: array [0..512] of char;
  d, bufLen: DWORD;
  nInfo: integer;
begin
  Result := False;
  if url <> 'then
  begin
    if AutoAddHTMLID then
      if pos('http://', AnsiLowerCase(url)) = 0 then url := 'http://' + url;

    hInet := InternetOpen(nil, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
    if ASSIGNED(hInet) then
    begin
      hConnect := InternetOpenUrl(hInet, PChar(url), nil, 0, INTERNET_FLAG_EXISTING_CONNECT, 0);
      if ASSIGNED(hConnect) then
      begin
        d := 0;
        bufLen := length(infoBuffer);
        ZeroMemory(@infoBuffer, length(infoBuffer));
        if HttpQueryInfo(hConnect,HTTP_QUERY_STATUS_CODE, @infoBuffer[0], bufLen, d) then
        begin
          if infoBuffer = '200then Result := True // File exists
          { Val(infoBuffer, nInfo, d); // genauere Auswertung
          if d = 0 then
          begin
            case nInfo of
              401: not authorised, page exists
              404: no file
              500: Internal server error.
              else unbekannter fehler
            end;
          end else Fehler bei nInfo  }

        end;
        InternetCloseHandle(hConnect);
      end;
    end;
    InternetCloseHandle(hInet);
  end;
end;
//add:
oder mit einer genaueren Auswertung:
Delphi-Quellcode:
function CheckUrl(url: string; var ErrInfo: string; const AutoAddHTMLID: Boolean = True): boolean;
var
  hInet: HINTERNET;
  hConnect: HINTERNET;
  infoBuffer: array [0..512] of char;
  d, bufLen: DWORD;
  nInfo, e: integer;
begin
  Result := False;
  if url <> 'then
  begin
    if AutoAddHTMLID then
      if pos('http://', AnsiLowerCase(url)) = 0 then url := 'http://' + url;

    hInet := InternetOpen(nil, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
    if ASSIGNED(hInet) then
    begin
      hConnect := InternetOpenUrl(hInet, PChar(url), nil, 0, INTERNET_FLAG_EXISTING_CONNECT, 0);
      if ASSIGNED(hConnect) then
      begin
        d := 0;
        bufLen := length(infoBuffer);
        ZeroMemory(@infoBuffer, length(infoBuffer));
        if HttpQueryInfo(hConnect,HTTP_QUERY_STATUS_CODE, @infoBuffer[0], bufLen, d) then
        begin
          if infoBuffer = '200then Result := True;
          Val(infoBuffer, nInfo, e);
          if e = 0 then
          begin
            case nInfo of
              200: ErrInfo := 'ok, file exists';
              401: ErrInfo := 'not authorised, page exists';
              404: ErrInfo := 'no file';
              500: ErrInfo := 'Internal server error';
              else ErrInfo := 'undef. error (1)';
            end;
          end else ErrInfo := 'undef. error (2)';
        end else
          ErrInfo := 'offline or no internet connection';
        InternetCloseHandle(hConnect);
      end else
        ErrInfo := 'error, connection fails. (InternetOpenUrl fail)';
    end else
      ErrInfo := 'error (InternetOpen fail)';
    InternetCloseHandle(hInet);
  end else
    ErrInfo := 'URL is empty';
end;

PS.: i weis ned wohie der beitrag soll und mache ggf. somit den mods eine lange weile kürzer.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 00:39 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