Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.31;
Скачать: CL | DM;

Вниз

Проверка существования URL   Найти похожие ветки 

 
Matrex   (2007-10-16 20:42) [0]

Коллеги... Нужно ваше мнение. Для проверки существования URL пользуюсь следующей функцией (см. ниже). Все вроде бы ничего, но такое ощущение, что эта процедура, прежде чем проверить есть ли URL пытается его сначала выкачать… Для примера проверка 30 ссылок на архивы потянула трафика примерно на 15 мегов. Может, есть альтернативная функция? Или может где ни будь закралась ошибка в коде?  А может так надо?


function TCheckUrl.CheckUrls(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) and (pos("ftp://", 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;


 
umbra ©   (2007-10-17 15:33) [1]

InternetOpenUrl пытается именно скачать ресурс. Вместо нее надо использовать HttpOpenRequest, HttpSendRequest, проверять код ответа и сразу же закрывать соединение, не вызывая InternetReadFile. Траффик все равно будет, но гораздо меньше.



Страницы: 1 вся ветка

Текущий архив: 2008.08.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
15-1215912547
AFHU
2008-07-13 05:29
2008.08.31
Имя России. Исторический выбор-2008


2-1216845572
Terasbetoni
2008-07-24 00:39
2008.08.31
Как устанавливать библиотеки? В частности GLScene.


15-1215693497
Kolan
2008-07-10 16:38
2008.08.31
Пришлось переустанавливать систему поновой, ниже результат.


1-1197277902
chuzhakin
2007-12-10 12:11
2008.08.31
докинг панели пересоздаются


3-1204540600
хочу все знать
2008-03-03 13:36
2008.08.31
Подсчет символов в поле записи