Показать сообщение отдельно
  #1  
Старый 14.04.2009, 16:47
Аватар для AnalogXP
AnalogXP AnalogXP вне форума
Прохожий
 
Регистрация: 20.01.2008
Сообщения: 25
Репутация: 10
По умолчанию Проверка ссылки

Здарвствуйте!

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