Thema: URL checken

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: URL checken

  Alt 23. Aug 2013, 09:23
Durch das Free ist IdHTTP1 ja gar nicht mehr existent, daher muss ja jeder weitere Zugriff scheitern. Hast Du evtl. Code ausgelassen, ich kann mir nicht vorstellen, dass Achim so ein Klopper passiert sein soll?

[edit] Du kannst es aber auch mal so versuchen (ohne Indy):
Delphi-Quellcode:
uses WinInet;

function IsUrlValid(const sUrl: string; CheckTimeout: DWORD = 3000): Boolean;
var
  hInet, hConnect: HINTERNET;
  StatusCode, dummy, bufLen, Option: DWORD;
begin
  Result := False;
  hInet := InternetOpen(PChar(Application.Title),
    INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
  if Assigned(hInet) then
    try
      Option := CheckTimeout;
      InternetSetOption(hInet, INTERNET_OPTION_CONNECT_TIMEOUT, @Option,
        SizeOf(Option));
      InternetSetOption(hInet, INTERNET_OPTION_RECEIVE_TIMEOUT, @Option,
        SizeOf(Option));
      hConnect := InternetOpenUrl(hInet, PChar(trim(sUrl)), nil, 0,
        INTERNET_FLAG_NO_UI, 0);
      if Assigned(hConnect) then
        try
          dummy := 0;
          bufLen := SizeOf(StatusCode);
          if HttpQueryInfo(hConnect, HTTP_QUERY_STATUS_CODE or
            HTTP_QUERY_FLAG_NUMBER, @StatusCode, bufLen, dummy) then
            Result := StatusCode = HTTP_STATUS_OK;
        finally
          InternetCloseHandle(hConnect);
        end;
    finally
      InternetCloseHandle(hInet);
    end;
end;
Das setzt zwar einen installierten InternetExplorer voraus, aber davon kann man wohl ausgehen.[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (23. Aug 2013 um 10:23 Uhr)
  Mit Zitat antworten Zitat