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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2017, 17:09   #1
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию idhttp потоки

Отправляю в потоках
ГЕТ
ПОСТ
ГЕТ

Если ставлю 10 потоков то отправляется ~60 запросов и потом стоит
Если ставлю 20 потоков то отправляется ~120 запросов и потом стоит
и тд

в чем может быть проблема?
brownb вне форума Ответить с цитированием
Старый 19.09.2017, 17:40   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от brownb Посмотреть сообщение
в чем может быть проблема?
Наверное, в коде
eoln вне форума Ответить с цитированием
Старый 19.09.2017, 20:24   #3
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Наверное, в коде
ну я тоже предполагал,но все таки были сомнения.Спасибо за подсказку
brownb вне форума Ответить с цитированием
Старый 19.09.2017, 20:28   #4
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

Код:
TIdHTTP.create(nil); //Создаём HTTP
     HTTP.HandleRedirects:=false; //Запрещаем редирект
     http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3';
     http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
     SSL := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);
     HTTP.IOHandler := SSL;
     FAcc:= Copy(Accounts[CurAcc],1,Pos(';',Accounts[CurAcc])-1); //Копируем логин
     Result:= TStringList.Create;
postdata:= TStringList.Create;
data:= TStringList.Create;
mysql:= TStringList.Create;
     try
  begin

Result.Text:= http.get('+FAcc+');
strings := Parse('<form id="theform" method="POST" action="', '</form>', result.Text);
 if strings <> nil then
  begin
   url:= Parse('theform" method="POST" action="', '">', Result.text);
cookie:= Parse('<input type="hidden" name="session_id" value="', '">', Result.text);
post:= Parse('name="', '">', Result.text);
s:=post.Text;
s := StringReplace(post.Text, #13, ' ', [rfReplaceAll]);
  s := StringReplace(s, #10, '&', [rfReplaceAll]);
  s := StringReplace(s, '" value="', '=', [rfReplaceAll]);
  s := StringReplace(s, ' ', '', [rfReplaceAll]);
  post.Clear;
  data.Add(s);
    HTTP.Request.CustomHeaders.Text:='Cookie: bd_ovtu=100; PHPSESSID='+cookie.Strings[0]+';';
    postdata.Text:= http.post(url.Strings[0],data);
login:= Parse('<input type="hidden" name="username" value="', '">', postdata.Text);
mysql.add('get');
s := StringReplace(mysql.Text, #13, ' ', [rfReplaceAll]);
s := StringReplace(s, #10, '', [rfReplaceAll]);
s := StringReplace(s, ' ', '', [rfReplaceAll]);
mysql.Clear;
mysql.Add(s);
http.Get(mysql.Strings[0]);
 Rez:=-1;
     HTTP.Free; //УБиваем HTTP
     result.Free;
     postdata.Free;
     strings.Free;
     cookie.Free;
     post.Free;
     mysql.Free;
     url.Free;
     data.Free;
     zip.Free;
     login.Free;
     email.Free;
     end;
     end;

Последний раз редактировалось brownb; 19.09.2017 в 20:33.
brownb вне форума Ответить с цитированием
Старый 19.09.2017, 21:11   #5
GoldenEagle88
 
Регистрация: 24.07.2015
Сообщений: 8
По умолчанию

Попробуй в try закинуть весь код ,а убивание в finally вот так.
Плюс ,если смотреть код что ты скинул ,получается, что обьекты создаются всегда но уничтожаются только если отработали ,может в этом беда?
Код:
 TIdHTTP.Create(nil); // Создаём HTTP
  HTTP.HandleRedirects := false; // Запрещаем редирект
  HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3';
  HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
  SSL := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);
  HTTP.IOHandler := SSL;
  FAcc := Copy(Accounts[CurAcc], 1, Pos(';', Accounts[CurAcc]) - 1); // Копируем логин
  Result := TStringList.Create;
  postdata := TStringList.Create;
  data := TStringList.Create;
  mysql := TStringList.Create;
  try
    begin
      Result.Text := HTTP.get('+FAcc+');
      strings := Parse('<form id="theform" method="POST" action="', '</form>', Result.Text);
      if strings <> nil then
      begin
        url := Parse('theform" method="POST" action="', '">', Result.Text);
        cookie := Parse('<input type="hidden" name="session_id" value="', '">', Result.Text);
        post := Parse('name="', '">', Result.Text);
        s := post.Text;
        s := StringReplace(post.Text, #13, ' ', [rfReplaceAll]);
        s := StringReplace(s, #10, '&', [rfReplaceAll]);
        s := StringReplace(s, '" value="', '=', [rfReplaceAll]);
        s := StringReplace(s, ' ', '', [rfReplaceAll]);
        post.Clear;
        data.Add(s);
        HTTP.Request.CustomHeaders.Text := 'Cookie: bd_ovtu=100; PHPSESSID=' + cookie.strings[0] + ';';
        postdata.Text := HTTP.post(url.strings[0], data);
        login := Parse('<input type="hidden" name="username" value="', '">', postdata.Text);
        mysql.Add('get');
        s := StringReplace(mysql.Text, #13, ' ', [rfReplaceAll]);
        s := StringReplace(s, #10, '', [rfReplaceAll]);
        s := StringReplace(s, ' ', '', [rfReplaceAll]);
        mysql.Clear;
        mysql.Add(s);
        HTTP.get(mysql.strings[0]);
        Rez := -1;
      end;
    end;
  finally
    HTTP.Free; // УБиваем HTTP
    Result.Free;
    postdata.Free;
    strings.Free;
    cookie.Free;
    post.Free;
    mysql.Free;
    url.Free;
    data.Free;
    zip.Free;
    login.Free;
    email.Free;
  end;

Последний раз редактировалось GoldenEagle88; 19.09.2017 в 21:15.
GoldenEagle88 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idhttp https потоки brownb Общие вопросы Delphi 3 10.08.2017 23:50
idhttp(потоки) brownb Общие вопросы Delphi 1 02.03.2017 19:16
Потоки IdHTTP + куки jesus222 Работа с сетью в Delphi 2 28.03.2014 00:13
Потоки. Закрываются все потоки при ошибке в одном. Son Общие вопросы Delphi 11 01.11.2013 09:32
IdHttp и потоки bulldog5293 Работа с сетью в Delphi 1 21.07.2010 19:14