Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.141.202] |
|
Сообщ.
#1
,
|
|
|
Юзаю C++Builder +libcurl хочу поставить таймаут на прокси. Делаю так :
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 Что возвращает функция в разе таймаута. Благодарен Заранее! |
Сообщ.
#2
,
|
|
|
Пивёл бы весь код, связанный с курлом и локализующий ошибку. Еще лучше - вынес бы этот код в маленькое отдельное консольное приложение и потестил бы его там, и здесь бы выложил.
|
Сообщ.
#3
,
|
|
|
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 секунд вылетает. |
Сообщ.
#4
,
|
|
|
Не весь код. Что такое Writer и table?
table похож на String, и тогда используется неправильно. Попробуй для начала просто FILE* использовать. |
Сообщ.
#5
,
|
|
|
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. Добавлено Прокся сработала а потом ошибка P.S если у кого нароботки по данной теме дайте исходники. |
Сообщ.
#6
,
|
|
|
Хм, извиняюсь, тогда похоже правильно.
Ну а если закомментировать задание таймаутов - работает? curl_global_init вызываешь? Добавлено Цитата molot @ Прокся сработала а потом ошибка Попробуй не вызвать curl_easy_cleanup(curl); - это, конечно, не верно, но для диагностики полезно попробовать. |
Сообщ.
#7
,
|
|
|
Если закомментить таймут прокся работает ошибки нету.
curl_global_init нет не вызываю. Поправте если где то нужно ее вызвать! Может дело все в Post запросах знаю что не все прокси принимают их. |
Сообщ.
#8
,
|
|
|
Цитата molot @ Ага, народ уже в очередь выстраивается... P.S если у кого нароботки по данной теме дайте исходники. Добавлено Цитата molot @ библиотека (правильная) не должна падать от этого.Может дело все в Post запросах знаю что не все прокси принимают их. Цитата molot @ curl_global_init нет не вызываю. Поправте если где то нужно ее вызвать! В любом месте от старта программы до первого вызова easy_init |
Сообщ.
#9
,
|
|
|
Собственно никак не пойму в чем может быть проблема. Программа никак не может работать с списком прокси когда один пркоси работает. Мне нужно мол если в первого таймаут берем вторрой и так далее. Если таймаут что curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); возвращает.
|
Сообщ.
#10
,
|
|
|
Цитата molot @ Она никак не реагирует на таймаут, она просто его задёт. perform возвращает CURLE_OPERATION_TIMEDOUTЕсли таймаут что curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); возвращает. Добавь, кстати, проверки возвращаемых значений и выводы их результатов. Цитата molot @ Не надо это понимать, это надо найти. Собственно никак не пойму в чем может быть проблема. |
Сообщ.
#11
,
|
|
|
ВСе пересмотрел ничего странного не нашел а почему не пашет вообще не пойму.
|
Сообщ.
#12
,
|
|
|
Без паники!
Прочитай посты еще раз и сделай то, что я просил |
Сообщ.
#13
,
|
|
|
Дабы не создавать новую тему спрошу здесь, У меня есть куки от сайта как с помощю их авторизоватся на сайте.
Curl |
Сообщ.
#14
,
|
|
|
molot,
А какое отношение куки от сайта имеет к данному вопросу про прокси? Вы бы создали новую тему по своей проблеме, а то форум превращается в базар... |
Сообщ.
#15
,
|
|
|
Думал просто незахламлять форум множествами тем. Исправлюсь!
|