Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Как в libcurl автоматизировать процесс подстановки куков на редирект? 04.10.09 17:15 Число просмотров: 2108
Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 04.10.09 17:22 Количество правок: 4
|
Перваяя страница устанавливает куки и делает редирект на вторую страницу, которая их юзает. Имеется в виду случай, когда параметр CURLOPT_FOLLOWLOCATION установлен в единицу (тогда libcurl сама проходит по цепочке location'ов).
Для случая с одним потоком я нашёл решение. Если прикрутить куки к файлу, то libcurl автоматически пишет их и читает:
curl_easy_setopt(*curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_easy_setopt(*curl, CURLOPT_COOKIEFILE, "cookie.txt");
Но для большого числа потоков такой метод неэффективен. Топоровое решение: создать N файлов и раздать их каждому потоку, но при таком подходе быстродействие программы падает ниже плинтуса (дисковый ввод/вывод одна из самых медленных операций в системе).
Можно ли как-нибудь сделать то же самое, только не с файлами, а с переменными? Или может быть есть способ научить переменные притворяться файлами?
На худой конец, если такой возможности в libcurl нет, то подскажите пожалуйста, как обрабатывать редиректы вручную? У меня с этим возникли проблемы: я вытаскиваю ссылку из заголовка Location, который мне прислал сервер, пытаюсь перейти по этой ссылке и обламываюсь: libcurl возвращает ошибку "empty reply".
PS. Пробовал использовть для этой цели именованные каналы (с ними можно обращаться как с файлами), но афёра не удалась, т.к. после того как данные прочитаны, они выталкиваются из канала. Может быть есть ещё что-то подобное?
|
- [C++] Как в libcurl автоматизировать процесс подст... - Vedrus 04.10.09 17:15 [2108]
|
|
|