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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 22:17   #1
Фенрир
fenryrroa@mail.ru
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 10
По умолчанию Зависание при пост запросе

Добрый вечер. Просьба подсказать, если кто сталкивался.
У меня проблема.
ПРи пост запросе (https ) именно через прокси программа зависает. Если ловить исключение, то в сообщение - 200 OK.
Код:
       m_domain := doms [ random(6) + 1 ];
                  multi.AddFormField('login', m_login);
                  multi.AddFormField('domain', m_domain );
                  multi.AddFormField('fullname', name);
                 multi.AddFormField('RecoverPassword', '');
                  multi.AddFormField('newpass', 'abcdefghij');
                 multi.AddFormField('newpass2', 'abcdefghij');
                  multi.AddFormField('genpass', 'abcdefghij');
                  multi.AddFormField('recaptcha_challenge_field', s_post);
                 multi.AddFormField('recaptcha_response_field', capcha);
                 multi.AddFormField('create', convertencoding ('Зарегестрировать', cmAnsiToKoi8R));

                 idhttp1.Request.Referer := 'https://stat.zenon.net/c/cgpaccount';
     try  // если без блока try - except то прога зависает
                 idhttp1.ProtocolVersion := pv1_1;
                 idhttp1.ReadTimeout := 100000;
                 idhttp1.Port := 443;

                 idhttp1.Post ('https://stat.zenon.net/c/cgpaccount', multi, ss);
                     except
                     on e : exception do   begin
                    _trace (e.message); // 200 OK
                       _trace (inttostr (idhttp1.ResponseCode) );
                       //showmessage (idhttp1.Response.RawHeaders.Text);
                       if idhttp1.ResponseCode = 302 then  idhttp1.Post ('https:// stat.zenon.net/c/cgpaccount', multi, ss);
                        end;
                     end;
Инициализирую так:
Код:
   idhttp1 := TidHttp.Create(nil);
    cook := tidcookiemanager.Create(idhttp1);
     idhttp1.CookieManager := cook;
     idhttp1.AllowCookies := true;
     idhttp1.CookieManager.CookieCollection.Clear;
     idhttp1.HandleRedirects := True;

    idhttp1.Request.Host:='zmail.ru';
    idhttp1.Request. UserAgent :='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
    idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    idhttp1.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
    idhttp1.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    idhttp1.Request.Connection:='keep - alive';
    idhttp1.Request.ContentType := 'text/html; charset=koi8-r';
    idhttp1.ProtocolVersion:=pv1_0;
    idhttp1.Port := 443;
    SSLIO := TidSSLIOHandlerSocket.Create(idhttp1); // https
     SSLIO.SSLOptions.Method := sslvSSLv2; // sslvSSLv3;
     sslio.SSLOptions.Mode := sslmUnassigned;
     idhttp1.IOHandler := SSLIO;
Без использования прокси НИКАКИХ проблем нет. С прокси страница регистрации, капча, все нормально принимается. но при пост запросе виснет.

Прокси так устанавливаю
предварительно заполнив структуру proxy
Код:
    procedure TRegThread.init_http;
          function is_proxyvalid (var p : tproxy) : Boolean;
             Begin
                Result := True;
                try
             idhttp1.Get('http://www.google.com/index.html');
             idHTTP1.Disconnect;
           except
           on E: EIdException do begin    // ïðîêñè íå âàëèäåí
           _trace ( 'Ïðîêñè :  ' +format ('%s:%d',[p.ip, p.port]) + ' íå ðàáî÷èé');
            result:=false;
             end;  // except1
            On E:exception do begin
            _trace ( 'ProxyError :  ' + E.Message);
           Result :=false;
           end;  // except2
           end;  // except
         end;  //func
       begin
        if  buseproxy then begin; //  èñïîëüçóåì ïðîêñè
              repeat
              _trace ('Âûáèðàåò ïðîêñè');
              entercriticalsection (cs);
              form1.GetProxy(proxy);
              leavecriticalsection (cs);
               _trace ( 'Ïðîâåðêà Ïðîêñè :  ' +format ('%s:%d',[proxy.ip, proxy.port]));
            //   try
              idhttp1.ProxyParams.ProxyServer:=proxy.ip;
              idhttp1.ProxyParams.ProxyPort:=proxy.port;
              idhttp1.ProxyParams.ProxyUsername:=proxy.log;
              idhttp1.ProxyParams.ProxyPassword:=proxy.pass;
              idhttp1.ProxyParams.BasicAuthentication:= proxy.basic   ;
             // except
              //end;
              if is_proxyvalid (proxy) then break;
              until  false;
              _trace ('Ðàáîòàåò ÷åðåç ïðîêñè: ' + format ('%s:%d',[proxy.ip, proxy.port]));
          end;
          idhttp1.CookieManager.CookieCollection.Clear;
       end;

Последний раз редактировалось Фенрир; 28.10.2009 в 22:20.
Фенрир вне форума
Старый 14.12.2009, 15:18   #2
zoso
Новичок
Джуниор
 
Регистрация: 14.12.2009
Сообщений: 1
По умолчанию

Чувак, если мы тебя поймаем, то за свою спамерскую тулзу - который ты хочешь спамить через наш хостинг - дадим по ушам! )))
zoso вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Побороть зависание при слабом интернете RIO Работа с сетью в Delphi 11 17.09.2009 13:08
зависание excel при постоянном обращении к ячейке iamaxl Microsoft Office Excel 1 07.07.2009 18:02
Зависание при показе Диалога nusik Общие вопросы C/C++ 11 02.07.2009 08:20
Зависание при открытии сетевого файла Bes1k Microsoft Office Excel 1 02.03.2009 07:38
Зависание при наборе определенных слов mus-chek Microsoft Office Word 12 01.11.2008 08:20