На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > timeout для прокси , C++ builder
      Юзаю C++Builder +libcurl хочу поставить таймаут на прокси. Делаю так :

      ExpandedWrap disabled
        curl_easy_setopt(curl,CURLOPT_PROXY, sProxy);
        curl_easy_setopt(curl, CURLOPT_TIMEOUT, 5);
        curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 5);


      После конекта к первой прокси вылетает ошибка :

      Access violation at adress 6B24597D in module "libcurl.dll". Read of adress 2E252925
      Что возвращает функция в разе таймаута. Благодарен Заранее!
        Пивёл бы весь код, связанный с курлом и локализующий ошибку. Еще лучше - вынес бы этот код в маленькое отдельное консольное приложение и потестил бы его там, и здесь бы выложил.
          ExpandedWrap disabled
            curl = curl_easy_init();
            int lines=Form1->Memo1->Lines->Count;
            for (int i = 0; i <= lines-1; i++)
            {
             
               String sProxy = Form1->Memo1->Lines->Strings[i];
             
            if(curl)
            {
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Writer);
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &table);
             
            curl_easy_setopt(curl, CURLOPT_URL, "url");
            curl_easy_setopt(curl, CURLOPT_POST, 1);
            curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "Пост запрос");
            curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
            curl_easy_setopt(curl,CURLOPT_PROXY, sProxy.Trim());
             
            curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
             
             
            curl_easy_setopt ( curl, CURLOPT_COOKIEFILE, "outfile.txt" );
            table = "";
            curl_easy_perform(curl);
            Form1->Memo2->Text=table;
            curl_easy_cleanup(curl);
             
            }
            }
            }

          Когда прокся установленя у меня на крмпе все пашет. А вот когда с проси листов и таймутом в 10 секунд вылетает.
          Сообщение отредактировано: molot -
            Не весь код. Что такое Writer и table?
            table похож на String, и тогда используется неправильно.
            Попробуй для начала просто FILE* использовать.
              ExpandedWrap disabled
                static size_t Writer(char *data, size_t size, size_t nmemb, AnsiString *buffer)
                {
                      size_t result = 0;
                 
                      if(buffer != NULL)
                      {
                          buffer->Insert(data,buffer->Length()+1);
                          result = size * nmemb;
                      }
                 
                      return result;
                }


              Пишет ответ в String table.

              Добавлено
              Прокся сработала а потом ошибка
              user posted image

              P.S если у кого нароботки по данной теме дайте исходники.
              Сообщение отредактировано: molot -
                Хм, извиняюсь, тогда похоже правильно.
                Ну а если закомментировать задание таймаутов - работает?

                curl_global_init вызываешь?

                Добавлено
                Цитата molot @
                Прокся сработала а потом ошибка

                Попробуй не вызвать curl_easy_cleanup(curl); - это, конечно, не верно, но для диагностики полезно попробовать.
                  Если закомментить таймут прокся работает ошибки нету.
                  curl_global_init нет не вызываю. Поправте если где то нужно ее вызвать!
                  Может дело все в Post запросах знаю что не все прокси принимают их.
                  Сообщение отредактировано: molot -
                    Цитата molot @
                    P.S если у кого нароботки по данной теме дайте исходники.
                    Ага, народ уже в очередь выстраивается...

                    Добавлено
                    Цитата molot @
                    Может дело все в Post запросах знаю что не все прокси принимают их.
                    библиотека (правильная) не должна падать от этого.

                    Цитата molot @
                    curl_global_init нет не вызываю. Поправте если где то нужно ее вызвать!

                    В любом месте от старта программы до первого вызова easy_init
                      Собственно никак не пойму в чем может быть проблема. Программа никак не может работать с списком прокси когда один пркоси работает. Мне нужно мол если в первого таймаут берем вторрой и так далее. Если таймаут что curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); возвращает.
                        Цитата molot @
                        Если таймаут что curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); возвращает.
                        Она никак не реагирует на таймаут, она просто его задёт. perform возвращает CURLE_OPERATION_TIMEDOUT
                        Добавь, кстати, проверки возвращаемых значений и выводы их результатов.

                        Цитата molot @
                        Собственно никак не пойму в чем может быть проблема.
                        Не надо это понимать, это надо найти.
                          ВСе пересмотрел ничего странного не нашел а почему не пашет вообще не пойму.
                            Без паники! :)
                            Прочитай посты еще раз и сделай то, что я просил
                              Дабы не создавать новую тему спрошу здесь, У меня есть куки от сайта как с помощю их авторизоватся на сайте.
                              Curl
                              Сообщение отредактировано: molot -
                                molot,

                                А какое отношение куки от сайта имеет к данному вопросу про прокси? Вы бы создали новую тему по своей проблеме, а то форум превращается в базар...
                                  Думал просто незахламлять форум множествами тем. Исправлюсь!
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0361 ]   [ 16 queries used ]   [ Generated: 27.04.24, 22:46 GMT ]