|
#1
|
||||
|
||||
Проверка ссылки
Здарвствуйте!
Нужно проверить интернет адрес на существование, то есть жива ссылка или мертва. Есть код который работает вполне нормально, но нужна еще и проверка с возможностью использования через прокси. Также нужна возможность проверки адресов через SSL (https). Я с сетевым программированием не знаком, может поможете дополнить код чтобы можно было выполнить все необходимые задачи? Код: Код:
function CheckUrl( AURL: WideString ): Boolean; const C_CLIENT: WideString = 'checkurl'; C_HTTP_W : WideString = 'http'; C_ADD_W: WideString = '://'; var lSession, lFile: hInternet; lBuf, lLen, lIdx: DWORD; begin if Pos( C_HTTP_W, WideLowerCase( AURL ) ) <> 1 then AURL := C_HTTP_W + C_ADD_W + AURL; Result := False; lSession := InternetOpenW( PWideChar(C_CLIENT), PRE_CONFIG_INTERNET_ACCESS, nil, nil, 0); if Assigned(lSession) then try lFile :=InternetOpenURLW( lSession, PWideChar(AURL), nil, 0 , INTERNET_FLAG_RELOAD, 0); if Assigned( lFile ) then try lIdx := 0; lLen := SizeOf(lBuf); if HttpQueryInfoW( lFile, HTTP_QUERY_STATUS_CODE or HTTP_QUERY_FLAG_NUMBER, @lBuf, lLen, lIdx) then Result := (lBuf = 200) or (lBuf = 302); finally InternetCloseHandle( lFile ) end; finally InternetCloseHandle(lSession); end; end; |