Здарвствуйте!
Нужно проверить интернет адрес на существование, то есть жива ссылка или мертва.
Есть код который работает вполне нормально, но нужна еще и проверка с возможностью использования через прокси. Также нужна возможность проверки адресов через 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;