Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 19:16   #1
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию Авторизоваться на прокси сервере.

использую такой код для задания прокси
Код:
 New(PIInfo); dis:=1;
  PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
  S:=ListBox1.Items.Strings[ListBox1.ItemIndex];
  PIInfo^.lpszProxy := PAnsiChar(S);
  PIInfo^.lpszProxyBypass := '';
    UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo,
    SizeOf(Internet_Proxy_Info), 0);
но прокси используют авторизацию по логину и паролю,
весь интернет перерыл,нашел только это ,но не могу понять как использовать.Вроде бы нужно хандл чего то достать..Подскажите пожалуйста..

Код:
The following example demonstrates how to set the proxy username and password on a specified HINTERNET handle.

//hOpen is the HINTERNET handle created by InternetOpen.
//strUsername is a string buffer that contains the proxy username.
InternetSetOption(hOpen, INTERNET_OPTION_PROXY_USERNAME, strUsername, strlen(strUsername)+1);

//strPassword is the buffer that contains the proxy password.
InternetSetOption(hOpen, INTERNET_OPTION_PROXY_PASSWORD, strPassword, strlen(strPassword)+1);
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 31.05.2013, 02:52   #2
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию

Ну вот вроде как использовать разобрался,но функция почему то возвращает false(((

Код:
hNet:=InternetOpen('Project1',CERN_PROXY_INTERNET_ACCESS,'46.148.30.144:8080',nil,0);
if InternetSetOption(hNet, INTERNET_OPTION_PROXY_USERNAME,PChar('UAJnm9eGUe8D'), strlen('UAJnm9eGUe8D')+1)=false then
showmessage('false');

//strPassword is the buffer that contains the proxy password.
if InternetSetOption(hNet, INTERNET_OPTION_PROXY_PASSWORD, PChar('dUy9uvFlv4'), strlen('dUy9uvFlv4')+1)=false then
showmessage('false');
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 31.05.2013, 11:07   #3
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

GetLastError пробовали вызывать после функции, которая возвращает False?
kangreon вне форума Ответить с цитированием
Старый 31.05.2013, 13:39   #4
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию

Попробовал,после InternetOpen вывело операция успешно завершена.
Остальные 2 вывелись пустые.
Код:
hNet:=InternetOpen('Project1',CERN_PROXY_INTERNET_ACCESS,'46.148.30.144:8080',nil,INTERNET_FLAG_DONT_CACHE);
ShowMessage(SysErrorMessage(GetLastError));

if InternetSetOption(hNet, INTERNET_OPTION_PROXY_USERNAME,PChar('UAJnm9eGUe8D'), strlen('UAJnm9eGUe8D')+1)=false then
ShowMessage(SysErrorMessage(GetLastError));

//strPassword is the buffer that contains the proxy password.
if InternetSetOption(hNet, INTERNET_OPTION_PROXY_PASSWORD, PChar('dUy9uvFlv4'), strlen('dUy9uvFlv4')+1)=false then
ShowMessage(SysErrorMessage(GetLastError));
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 01.06.2013, 15:54   #5
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию

ребят подскажите может у кого какие идеи...
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 15.10.2013, 14:23   #6
Baal80
 
Регистрация: 23.04.2011
Сообщений: 5
По умолчанию

Выдержка из MSDN:
Цитата:
INTERNET_OPTION_PROXY_USERNAME This option can be set on the handle returned by InternetConnect or HttpOpenRequest.

INTERNET_OPTION_PROXY_PASSWORD This option can be set on the handle returned by InternetConnect or HttpOpenRequest.
У тебя хэндл неверный. Устанавливай параметры после вызова InternetConnect или HttpOpenRequest и став хэндлы этих функций.
Есть и другой способ - дописать http-заголовок
uses .....IdcoderMIME, idGlobal; {для кодирования в BASE64}
................................... .........
hRequest := HttpOpenRequest(hConnect, RequestMethod, PChar(FileName), HTTP_VERSION, PChar(FTReferer), @AcceptType, InternetFlag, 0);
basicAuth :='Proxy-Authorization: Basic ' +
TIdEncoderMIME.EncodeBytes(ToBytes( ProxyUser + ':' + ProxyPassword));
PWideBasicAuth:=PWideChar(String(ba sicAuth));
res:=HttpAddRequestHeaders(hRequest , PWideBasicAuth, Length(PWideBasicAuth), HTTP_ADDREQ_FLAG_ADD);
................................... ..........

Последний раз редактировалось Baal80; 15.10.2013 в 16:55.
Baal80 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу авторизоваться на сайте doober Общие вопросы .NET 2 27.11.2012 11:30
Не могу авторизоваться Terti PHP 12 16.10.2012 15:52
Не могу авторизоваться Евгений79 Работа с сетью в Delphi 1 23.05.2011 08:53
Авторизоваться на IP.B Kottik Работа с сетью в Delphi 19 21.08.2009 23:13
Не авторизоваться на сайтах. Kaunaz Помощь студентам 2 20.07.2009 19:31