ファイルアップロード操作を実行しようとしています(これは複数のHTTP POST要求を使用して行われます)。したがって、最初のHTTP POSTの応答からCookieを保存し、2番目のHTTP POSTの要求でこれらのCookieを設定する必要があります。 CURLINFO_COOKIELISTを使用してクッキーを保存し、CURLOPT_COOKIELISTを使用して手動でクッキーを設定します。CURLOPT_COOKIELISTを異なるカール簡単ハンドルに設定できますか?
CURLcode result = curl_easy_setopt(curlHandle、CURLOPT_COOKIELIST、my_cookies) これは、同じcurlHandleでCookieを設定した場合にのみ機能します。ハンドルを閉じて各要求の後で新しいハンドルを作成すると、ハンドルは失敗します。
同じセッションで複数のHTTP要求を実行するために、異なるカールハンドルでCURLOPT_COOKIELISTオプションを使用することはできませんか? 何か助けていただければ幸いです。
更新: 私はこのようなクッキーを保存して設定しようとしています。私がやっていることが間違っていますか?
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リストが特定のハンドルに結びついているとは限りません。 – Barmar
コードを投稿すると、間違っていることがわかります。複数のスレッドを使用している場合、多分問題は、あなたが 'my_cookies'の使用の回りにミューテックスを持っていないことです。 – Barmar