![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить работоспособность URL-ссылки? [D5, D6, Win95/98, WinXP]
kofman © (2002-08-11 00:33:00)Уважаемые Мастера, подскажите пожалуйста, как быстро определить работоспособнось URL-ссылки? И если возможно с учетом того что сервер при обращении к нему может вообще не ответить, т.е. предусмотреть таймаут после которого однозначно понятно что ссылка не работает.
kofman (2002-08-11 21:53:00) [1]int64 - спасибо что откликнулся. И за код спасибо, но вот незадача, если сервер не отвечает, то твоя фунция будет долбить его до бесконечности, а как ограничить время тамаута?
int64 (2002-08-11 16:32:00) [2]Ты должен быть онлайн, чтобы функция работала.
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;
Дерзай.