Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Как произвести поиск файлов во вложенных папках
   Категория: Файловая система
  Удалить файл в Корзину
   Категория: Приложение
  Возвести в степень
   Категория: Математика
  Группировка TopAdvGrid
   Категория: Компоненты
  Вставить иконки в Grid
   Категория: Компоненты
  Подсветить часть текста в DBGrid
   Категория: Компоненты
  Как соединить несколько файлов в один
   Категория: Файловая система
  Форма всегда наверху
   Категория: Компоненты

Delphi - База Знаний: Проверить существование определённого URL

  << Вернуться к Содержанию  

Данная функция позволяет Вам проверить существование определённого адреса(URL) в интернете. Естественно она может пригодиться веб-мастерам, у которых на сайте много ссылок, и необходимо с определённой периодичнойстью эти ссылки проверять.

URL может быть как с префиксом http:/ так и без него - эта функция добавляет префикс http:// если он отсутствует (необходимо для функции internetOpenUrl которая так же поддерживает FTP:// и gopher://

Эта функция проверяет только два возвращаемых кода '200'(ОК) или '302' (Редирект), но Вы можете заставить проверять функцию и другие коды. Для этого достаточно модифицировать строчку "result := ".

uses wininet;

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;



  << Вернуться к Содержанию