CURLOPT_COOKIELIST 可以设置在不同的 curl easy handle 上吗?
Can CURLOPT_COOKIELIST be set on a different curl easy handle?
我正在尝试执行文件上传操作(使用多个 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 选项在同一个会话中执行多个 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 列表中没有任何内容将其绑定到特定的简单句柄,所以是的,它可以移动并插入到另一个句柄中。
我正在尝试执行文件上传操作(使用多个 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 选项在同一个会话中执行多个 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 列表中没有任何内容将其绑定到特定的简单句柄,所以是的,它可以移动并插入到另一个句柄中。