Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с InternetOpenUrl, Проблема с InternetOpenUrl 
:(
    Опции темы
Vitus28
Дата 20.3.2014, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.3.2014

Репутация: нет
Всего: нет



Доброго времени суток.
Мне необходимо проверить доступноть большого количеству url.
Есть такая функция:
Цитата

function TForm1.CheckUrl(URL:string):boolean;
var
  hSession,hfile: hInternet;
  dwindex,dwcodelen: dword;
  dwcode: array[1..20] of char;
  lpBuffer: array[0..1024 + 1] of Char;
  res: pchar;
  dwBytesRead: DWORD;
begin
  Result:= false;
  if URL = '' then exit;
  hSession:= InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 1);
  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);

    if assigned(hfile) then InternetCloseHandle(hfile);
    InternetCloseHandle(hsession);
  end;
end;

И все было бы замечательно, если бы при встрече с недоступным ресурсом ее выполнение не залипало бы на функции InternetOpenUrl в ожидании ответа. Как это можно обойти? Пытался time out уменьшить (функция InternetSetOption) - без результатно, такое чувство что она на них и внимания не обращает. Помогите!!!

Это сообщение отредактировал(а) Vitus28 - 20.3.2014, 08:51
PM MAIL   Вверх
Akella
Дата 20.3.2014, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(Vitus28 @  20.3.2014,  07:56 Найти цитируемый пост)
при встрече с недоступным ресурсом ее выполнение не залипало бы


это как?
что такое "залипание"?
нельзя ли на нормальном языке описать проблему?
PM MAIL   Вверх
Vitus28
Дата 21.3.2014, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.3.2014

Репутация: нет
Всего: нет



"Залипание" - это то что происходит если вызвать описанную выше функцию для недоступного url. Программа зависнет на период ожидания ответа. Я сижу за проксей и по настройкам прокси это время составляет 2 минуты. Это не очень удобно.
Попытки программно изменить время ожидания с помощью InternetSetOption результатов не дали!
Может быть кто знает почему устанавливаемые с помощью InternetSetOption тайм ауты не работают?

Это сообщение отредактировал(а) Vitus28 - 21.3.2014, 03:40
PM MAIL   Вверх
Akella
Дата 21.3.2014, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(Vitus28 @  21.3.2014,  01:06 Найти цитируемый пост)
Программа зависнет на период ожидания ответа. 


используй потоки
PM MAIL   Вверх
Vitus28
Дата 24.3.2014, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.3.2014

Репутация: нет
Всего: нет



потоки не помогут. http://forum.vingrad.ru/forum/topic-376544...y2603143/0.html - вот здесь пример на потоках. При вываливании из потоковой функции ее дальнейшая работа протекает не прапвильно. Причина - InternetOpenUrl "залипает".
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1006 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.