Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Загрузка по HTTP через проксю


Автор: crizunhor 5.1.2006, 10:09
Подключение идет через proxy-server. Подключаюсь вроде нормально. Но, когда пытаюсь открыть URL, прога виснет и через несколько секунд возвращает NULL. GetLastError дает
ERROR_INTERNET_TIMEOUT.
Подскажите, что я делаю неправильно?
Заранее благодарен.

Код

if( InternetAttemptConnect(0) != ERROR_SUCCESS) //Все нормально
          exit(0);

HINTERNET hUrl;
HINTERNET hInet;

hInet = InternetOpen("Downloader", INTERNET_OPEN_TYPE_PROXY , 0,  0, 0); //Подключается корректно

hUrl = InternetOpenUrl(hInet, "http://www.ya.ru/index.html", 0, 0,INTERNET_FLAG_RELOAD, 0); // hUrl == NULL
unsigned long ret = GetLastError(); // ret = 12002 (ERROR_INTERNET_TIMEOUT)

Автор: Aleksandor 5.1.2006, 10:28
А прокся точно не дохлая smile Ну скажем Explorer через нее нормально работает?

Автор: crizunhor 5.1.2006, 10:45
Точно. Сейчас по ней сижу.

Автор: Aleksandor 5.1.2006, 11:19
Я с WinInet не работал, но наверное тебе надо разобраться лучше с флагами и параметрами этих функций. Третий параметр в InternetOpen 0 - значит адрес прокси в регистре. а где конкретно? порт тоже там указан?
Может время тайм аута увеличить... И вообще там должен быть какой то способ узнать какие заголовки отсылаются? Хочется видеть заголовки запроса smile А вообще функции хорошие. Говорят их сам Explorer использует , точнее URL моникеры smile

Автор: crizunhor 5.1.2006, 11:37
Все. Проблема решена. Действительно с флагами напутал:
в InternetOpen при получения прокси из регистра, необходим флаг INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
Большое спасибо за помощь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)