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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация на прокси в idHTTP 
:(
    Опции темы
Zlo
Дата 30.6.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ помогите плиз!
Нужно получить страницу html через прокси с авторизацией.
Использую компонент idHTTP метод  Get
Для задания прокси использую ProxyParams. Если без авторизации то все нормально иногда правдо ошибки выскакивают, но если включить
Код

BasicAuthentication:=true;
 
то не коннектит не в какую!
Ошибка 407 Unauthorized 
PM MAIL   Вверх
Lence
Дата 6.12.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

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



У меня таже сама проблема - не получается авторизироваться на прокси для получения html страницы - пишу так 
Код

if CheckBox1.Checked then // если стоит галочка прокси
   begin
   //   HTTP1.Request.BasicAuthentication:= true;
      HTTP1.ProxyParams.ProxyServer:=Edit1.text;
      HTTP1.ProxyParams.ProxyPort:=StrToInt(.Edit2.Text);
      http1.ProxyParams.ProxyUsername:= Edit3.Text;
      http1.ProxyParams.ProxyPassword:= Edit6.Text;

      if CheckBox7.Checked  then  // если стоит галочка Авторизации
      
          HTTP1.Request.BasicAuthentication:= true
       
         else
     
         HTTP1.Request.BasicAuthentication:= false;
       
      
   end else
   begin
   //  HTTP1.Request.BasicAuthentication:= true;
     HTTP1.ProxyParams.ProxyServer:='';
     HTTP1.ProxyParams.ProxyPort:=0;
   end;



Это сообщение отредактировал(а) Lence - 6.12.2006, 18:33
--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
jsa
Дата 8.12.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

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



Была такая же проблема с инди, переделал все через wininet, не работает почему то TIdHttp через прокси


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
Lence
Дата 8.12.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

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



Цитата(jsa @ 8.12.2006,  16:25)
Была такая же проблема с инди, переделал все через wininet, не работает почему то TIdHttp через прокси

А можно пример ???
--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
jsa
Дата 8.12.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

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



Lence, пожалуйста: 
Код

uses WinInet;

function IsNeedAuth(hReq: HINTERNET): Boolean;
var BufSize, Status, {Flags,} Index: DWORD;
    //Ret: Boolean;
    //Sheme: array[0..63] of Char;
   // : array[1..20] of Char;
   // St: PChar;
begin
  //Result:=True;
  //Flags:=0;
  BufSize:=SizeOf(Status);
  Index:=0;
  HttpQueryInfo(hReq,HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE,@Status,BufSize,Index);

 { case Status of
   HTTP_STATUS_DENIED: Flags:=HTTP_QUERY_WWW_AUTHENTICATE;
   HTTP_STATUS_PROXY_AUTH_REQ: Flags:=HTTP_QUERY_PROXY_AUTHENTICATE;
  else
   Result:=False;
  end;}
  Result:=(Status = HTTP_STATUS_DENIED) or (Status = HTTP_STATUS_PROXY_AUTH_REQ);

  {if not Result then
   begin
    BufSize:=SizeOf(Sheme);
    Index:=0;
    repeat
     Ret:=HttpQueryInfo(hReq,Flags,@Sheme,BufSize,Index);
    until Ret;
    Result:=True;
   end;}
end;

function ShowAuthForm(App: TApplication): Integer;
begin
  AuthForm:=TAuthForm.Create(App);
  with AuthForm do
   try
    Result:=ShowModal;
   finally
    Free;
   end;
end;

function PostRequest(App: TApplication; FIO, Company, Addr, Phone, Copies, Month, Price, Typ: String): Boolean;
var hIO, hConnect, hRequest: HINTERNET;
    //Send: Boolean;
    Username, Password: array[0..64] of Char;
    BS, Status, Index: DWORD;
    Data,Url: String;
begin
  ShowStatus('Ïîäãîòîâêà äàííûõ äëÿ îòïðàâêè...'); // Просто лог
  Data:=StrTobase64(FIO)+':'+
        StrTobase64(IfThen(Company='','N/A',Company))+':'+
        StrTobase64(IfThen(Addr = '','N/A',Addr))+':'+
        StrTobase64(IfThen(Phone = '','N/A',Phone))+':'+
        StrTobase64(IfThen(Copies = '','N/A',Copies))+':'+
        StrTobase64(Month)+':'+
        StrTobase64(Price)+':'+
        StrTobase64(Typ);
  Url:='/xxxx.php?data='+Data;
  LogData(Url);
  Result:=False;
  ShowStatus('Ïîäêëþ÷åíèå ê èíòåðíåò...');
  hIO:=InternetOpen('Microsoft Internet Explorer',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
  if Assigned(hIO) then
   begin
    ShowStatus('Ïîäñîåäèíåíèå ñ ñåðâåðó...');
    hConnect:=InternetConnect(hIO,'www.xxxx.ru',80,nil,nil,INTERNET_SERVICE_HTTP,0,0);
    if Assigned(hConnect) then
     begin
      ShowStatus('Îòïðàâêà çàïðîñà...');
      hRequest:=HttpOpenRequest(hConnect,'GET',PChar(Url),nil,nil,nil,
                                INTERNET_FLAG_KEEP_CONNECTION or INTERNET_FLAG_RELOAD,0);
      if Assigned(hRequest) then
       begin
        if HttpSendRequest(hRequest,'',0,nil,0) then
         begin
           ShowStatus('Ðàáîòà ÷åðåç ïðîêñè...');
           if IsNeedAuth(hRequest) then
            begin
              if ShowAuthForm(App) = mrOk then
               begin
                StrPCopy(Username,ProxyAuth.Username);
                StrPCopy(Password,ProxyAuth.Password);
                ShowStatus('Ââîä ïîëüçîâàòåëÿ è ïàðîëÿ...');
                InternetSetOption(hConnect,INTERNET_OPTION_USERNAME, @Username,SizeOf(Username));
                InternetSetOption(hConnect,INTERNET_OPTION_PASSWORD, @Password,SizeOf(Password));
                if HttpSendRequest(hRequest,'',0,nil,0) then
                 begin
                  BS:=SizeOf(Status);
                  Index:=0;
                  ShowStatus('Îïðåäåëåíèå ñîñòîÿíèÿ çàïðîñà...');
                  HttpQueryInfo(hRequest,HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE,@Status,BS,Index);
                  Result:=Status = HTTP_STATUS_OK;
                 end;
               end;
            end
           else
            begin
             BS:=SizeOf(Status);
             Index:=0;
             ShowStatus('Îïðåäåëåíèå ñîñòîÿíèÿ çàïðîñà...');
             HttpQueryInfo(hRequest,HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE,@Status,BS,Index);
             Result:=Status = HTTP_STATUS_OK;
            end;
         end;
        InternetCloseHandle(hRequest);
       end;
      InternetCloseHandle(hConnect);
     end;
    ShowStatus('Çàêðûòèå ñîåäèíåíèÿ...'); 
    InternetCloseHandle(hIO);
   end;
end;



--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
Lence
Дата 8.12.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

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



jsa спасибо! Буду разбирать
--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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