Check if a URL is valid  

Send By: David Bolton
Web : N.A.
Email: N.A.
Date: 21/10/00

Tip accessed 478 times

 


The only precondition is that you must be online.

URLs can be given with or without the http:/ prefix

  • Add WinInet in the uses of your form

     Function CheckUrl(url:string):boolean;
     var
     hSession, hfile, hRequest: hInternet;
     dwindex,dwcodelen :dword;
     dwcode:array[1..20] of char;
     res : pchar;
     begin
       if pos('http://',lowercase(url))=0 then
          url := 'http://'+url;
       Result := false;
       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_RELOAD,
                0);
           dwIndex  := 0;
           dwCodeLen := 10;
           HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE,
                   @dwcode, dwcodeLen, dwIndex);
           res := pchar(@dwcode);
           result:= (res ='200') or (res ='302');
           if assigned(hfile) then
             InternetCloseHandle(hfile);
           InternetCloseHandle(hsession);
         end;
     end;