2016-11-16 4 views
0

ファイルアップロード操作を実行しようとしています(これは複数の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. 
+0

Cookieリストが特定のハンドルに結びついているとは限りません。 – Barmar

+1

コードを投稿すると、間違っていることがわかります。複数のスレッドを使用している場合、多分問題は、あなたが 'my_cookies'の使用の回りにミューテックスを持っていないことです。 – Barmar

答えて

1

ので、はい、それは上に移動し、別のハンドルに挿入することができる特定の容易なハンドルにバインドし、抽出クッキーのリストにあるものは何もありません。

関連する問題