我正在尝试执行文件上传操作(使用多个 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/