c++ - CURLOPT_COOKIELIST 可以设置在不同的 curl easy handle 上吗?

标签 c++ http cookies libcurl

我正在尝试执行文件上传操作(使用多个 HTTP POST 请求完成)。因此,我需要从第一个 HTTP POST 的响应中保存 cookie,并在第二个 HTTP POST 的请求中设置这些 cookie。我使用 CURLINFO_COOKIELIST 保存 cookie,并使用 CURLOPT_COOKIELIST 手动设置它们。

CURLcode 结果 = curl_easy_setopt(curlHandle, CURLOPT_COOKIELIST, my_cookies) 这仅在我将 cookie 设置在同一个 curlHandle 上时有效。如果我在每次请求后关闭句柄并创建新句柄,它将失败。

是否不能在不同的 curl 句柄上使用 CURLOPT_COOKIELIST 选项在同一 session 中执行多个 HTTP 请求? 非常感谢任何帮助。

更新: 我正在尝试像这样保存和设置 cookie。我可能做错了什么吗?

std::string my_cookies;
// Setting other options using curl_easy_setopt

// To start the cookie engine              
curl_easy_setopt(curlHandle,CURLOPT_COOKIEFILE,"");
if (!my_cookies.empty())
{
 curl_easy_setopt(curlHandle, CURLOPT_COOKIELIST, my_cookies);
}
curl_easy_perform(curlHandle);

// Save cookies from response of first HTTP POST
struct curl_slist* cookies;
curl_easy_getinfo(curlHandle,CURLINFO_COOKIELIST,&cookies);
// Code to copy cookies to my_cookies.

最佳答案

提取的 cookie 列表中没有任何内容将其绑定(bind)到特定的简单句柄,所以是的,它可以移动并插入到另一个句柄中。

关于c++ - CURLOPT_COOKIELIST 可以设置在不同的 curl easy handle 上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40642674/

相关文章:

http - 在浏览器地址栏中输入的任何内容都是 GET 请求吗?

http - 在哪里以及如何在 vue js 中存储 API 端点?

php - Cookie 路径特殊字符

c++ - 循环不正常

node.js - Azure Blob 服务 REST API - 错误 : read ECONNRESET

c++ - 关于可变参数模板

php - 登录时在 Yii 框架中启用/禁用基于 cookie 的登录

javascript - Cookie 的路径不起作用

c++ - clock_gettime 返回无意义的值

c++ - QT Creator 无法识别新项目的 STL 类型