Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


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

Добрый вечер. Просьба подсказать, если кто сталкивался.
У меня проблема.
ПРи пост запросе (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    // &#239;&#240;&#238;&#234;&#241;&#232; &#237;&#229; &#226;&#224;&#235;&#232;&#228;&#229;&#237;
           _trace ( '&#207;&#240;&#238;&#234;&#241;&#232; :  ' +format ('%s:%d',[p.ip, p.port]) + ' &#237;&#229; &#240;&#224;&#225;&#238;&#247;&#232;&#233;');
            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; //  &#232;&#241;&#239;&#238;&#235;&#252;&#231;&#243;&#229;&#236; &#239;&#240;&#238;&#234;&#241;&#232;
              repeat
              _trace ('&#194;&#251;&#225;&#232;&#240;&#224;&#229;&#242; &#239;&#240;&#238;&#234;&#241;&#232;');
              entercriticalsection (cs);
              form1.GetProxy(proxy);
              leavecriticalsection (cs);
               _trace ( '&#207;&#240;&#238;&#226;&#229;&#240;&#234;&#224; &#207;&#240;&#238;&#234;&#241;&#232; :  ' +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 ('&#208;&#224;&#225;&#238;&#242;&#224;&#229;&#242; &#247;&#229;&#240;&#229;&#231; &#239;&#240;&#238;&#234;&#241;&#232;: ' + format ('%s:%d',[proxy.ip, proxy.port]));
          end;
          idhttp1.CookieManager.CookieCollection.Clear;
       end;


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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Побороть зависание при слабом интернете 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 08:38
Зависание при наборе определенных слов mus-chek Microsoft Office Word 12 01.11.2008 09:20


05:18.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru