Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinInet_Proxy


iDL ©   (2006-04-03 22:25:00) 

Задача: есть прокси 192.168.0.1 User=DL Pass=12345, мне надо скачать файл по заданной ссылке.

Как с помощью wininet пройти авторизацию на прокси (имя и пароль)

как только не пробывал не получается ... скачивается страничка, что авторизация не пройдена, helppp.


iDL   (2006-04-05 15:47:00) [1]

попробывал ... GetLastError, после
InternetSetOption(hSession , INTERNET_OPTION_PROXY_PASSWORD, ...

выдает 12018=ERROR_INTERNET_INCORRECT_HANDLE_TYPE
т.е. ругается на hSession, если авторизация стоит по MAC, то файл качается нормально ... :'(


isasa   (2006-04-05 10:59:00) [2]

:) Пришел на работу, заглянул в MSDN

This function sets an Internet option on the specified handle.

BOOL WINAPI InternetSetOption(
 HINTERNET hInternet,
 DWORD dwOption,
 LPVOID lpBuffer,
 DWORD dwBufferLength
);
Parameters
hInternet
[in] Internet handle on which to setinformation.

Т.е в данном случае

hSession := InternetOpen('Microsoft Internet Explorer 7.0', INTERNET_OPEN_TYPE_PROXY,'192.168.0.245:8080',nil, 0);

...

 InternetSetOption(hSession , INTERNET_OPTION_PROXY_USERNAME, ...
 InternetSetOption(hSession , INTERNET_OPTION_PROXY_PASSWORD, ...
...
 hConnect:= InternetConnect(hSession,...
...
 hRequest:= HttpOpenRequest(hConnect,...
...
 HttpSendRequest(hRequest,...
...


isasa   (2006-04-05 08:26:00) [3]

+ Еще, сначала  HttpSendRequest(..., а потом устанавливаем опции?
Может наоборот?


isasa   (2006-04-05 08:22:00) [4]

В этом случае должно быть двепары(логин, пароль) - один на подкльчение к прокси, второй на подключение к узлу. Это разныевещи.


iDL   (2006-04-04 15:20:00) [5]

мне надо именно чтоб в программе пароль и имя пользователя забивалось ...


  hSession := InternetOpen('Microsoft Internet Explorer 7.0', INTERNET_OPEN_TYPE_PROXY,'192.168.0.245:8080',nil, 0);
  UserName:='12345';
  Password:='12345';
  Host:='home.earthlink.net';
  URL :='/~akonshin/files/IdeSN.zip';
  hConnect:= InternetConnect(hSession, Host, INTERNET_INVALID_PORT_NUMBER, nil, nil, INTERNET_SERVICE_HTTP, INTERNET_FLAG_KEEP_CONNECTION,0);

  hRequest:= HttpOpenRequest(hConnect,'GET',URL,nil,nil,nil,INTERNET_FLAG_KEEP_CONNECTION,0);

  HttpSendRequest(hRequest, nil, 0, nil, 0);

  InternetSetOption(hRequest,INTERNET_OPTION_PROXY_USERNAME, UserName, Length(UserName));

  InternetSetOption(hRequest,INTERNET_OPTION_PROXY_PASSWORD, Password, Length(Password));


может подскажите где не так ?
чем отличается INTERNET_OPTION_PROXY_PASSWORD от INTERNET_OPTION_PASSWORD


isasa   (2006-04-04 10:46:00) [6]

Как вариант

Header Wininet.h

HINTERNET InternetOpen(
   IN LPCTSTR lpszAgent,
   IN DWORD dwAccessType,
   IN LPCTSTR lpszProxyName,
   IN LPCTSTR lpszProxyBypass,
   IN DWORD dwFlags
);

dwAccessType = INTERNET_OPEN_TYPE_PRECONFIG;
Retrieves the proxy or direct configuration from the registry.

А вот в реестре(опции IE) настраиваем подключение к прокси с авторизацией.


Наверх

Титульная страница Поиск, карта сайта Написать письмо