19.126日报,curl的cookie机制分析

本文深入探讨了CURL库中Cookie的共享和管理机制,包括如何通过CURLOPT_SHARE选项实现多个CURL句柄间的Cookie共享,以及如何利用CURLOPT_COOKIELIST和CURLOPT_COOKIEJAR设置Cookie的读取和保存路径。
摘要由CSDN通过智能技术生成

    设置cookie:

    CURL* curl = curl_easy_init();
    CURLSH* curlsh = m_curlShareHandle;
    curl_easy_setopt(curl, CURLOPT_SHARE, curlsh);
    curl_easy_setopt(curl, CURLOPT_COOKIELIST, strCookie.data());
    curl_easy_cleanup(curl);

其中CURLOPT_SHARE会走到setopt.c的 data->cookies = data->share->cookies;这句,

让CURL* curl和m_curlShareHandle共享cookie内容,然后CURLOPT_COOKIELIST把cookie字符串写入CURL* curl,

就相当于写到共享m_curlShareHandle句柄里了。

下次在创建一个http请求的时候:

        curl_easy_setopt(curl, CURLOPT_COOKIEFILE, cookieJarPathString.c_str());

相当于设置这个CURL* curl句柄的cookie读取文件路径


        curl_easy_setopt(curl, CURLOPT_COOKIEJAR, cookieJarPathString.c_str());

相当于设置这个CURL* curl句柄的cookie保存文件路径

curl_easy_setopt(job->m_handle, CURLOPT_SHARE, m_shareCookieJar->getCurlShareHandle());

相当于让这次的http请求从共享句柄里取出cookie内存缓存,再做发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值