Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
6-1192114180
ggg
2007-10-11 18:49
2008.08.31
net share


2-1216987008
Delphist
2008-07-25 15:56
2008.08.31
Генератор


6-1192736496
DprPasDcu
2007-10-18 23:41
2008.08.31
Как управлять сетевыми подключениями?


11-1192972730
Dodfr
2007-10-21 17:18
2008.08.31
Cant update correctly KOLAdd from 2.81 to 2.82


15-1215611026
ProgRAMmer Dimonych
2008-07-09 17:43
2008.08.31
Как перегнать DVD на CD?




   Наверх