Насколько я понимаю, CURL будет автоматически обрабатывать сеансовые куки для вас, если вы включите куки, если вы повторно используете свой дескриптор CURL для каждого запроса в сеансе:
CURL *Handle = curl_easy_init();
// Read cookies from a previous session, as stored in MyCookieFileName.
curl_easy_setopt( Handle, CURLOPT_COOKIEFILE, MyCookieFileName );
// Save cookies from *this* session in MyCookieFileName
curl_easy_setopt( Handle, CURLOPT_COOKIEJAR, MyCookieFileName );
curl_easy_setopt( Handle, CURLOPT_URL, MyLoginPageUrl );
assert( curl_easy_perform( Handle ) == CURLE_OK );
curl_easy_setopt( Handle, CURLOPT_URL, MyActionPageUrl );
assert( curl_easy_perform( Handle ) == CURLE_OK );
// The cookies are actually saved here.
curl_easy_cleanup( Handle );
Я не уверен, что вам нужно установить COOKIEFILE и COOKIEJAR, но документация заставляет это выглядеть таким образом. В любом случае вам нужно установить один из двух, чтобы включить куки в CURL. Вы можете сделать что-то простое, как:
curl_easy_setopt( Handle, CURLOPT_COOKIEFILE, "" );
Это не будет читать файлы cookie с диска, но позволит включить сеансовые файлы cookie на время работы с curl.