curlはクッキーデータを獲得しました。
Crlのcookie操作方法を検討しましたが、注意すべき点があります。
公式コードの例を確認しました。
だから、curlでクッキーを獲得するには、ここに注意しなければなりません。
void BsuHttp::httpGet(const char *url,size_t(*func)(uint8_t *buffer,size_t size,size_t nmemb,void *stream))
{
CURL *curl;
CURLcode res;
char buffer[10];
curl = curl_easy_init(); // curl
if(curl)
{
curl_easy_setopt(curl,CURLOPT_URL,url); // url
curl_easy_setopt(curl,CURLOPT_COOKIE,cookie); // cookie
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,func); //
curl_easy_setopt(curl,CURLOPT_COOKIEFILE,""); // cookie , , cookie .
curl_easy_perform(curl); //
struct curl_slist *cookies = NULL;
curl_easy_getinfo(curl,CURLINFO_COOKIELIST,&cookies); // cookie
int i=1;
while (cookies) {
CCLOG("[%d]: %s
", i, cookies->data);
cookies = cookies->next;
i++;
}
curl_easy_cleanup(curl); // curl
}
}
もともと私は操作が簡単で、転送したデータからクッキーデータを取得すればいいですが、curl_を実行しなければなりません。イージー.setopt(curl,CURLOPT-uCOOKIEFILE);cookieデータを正しく受信できます。私はとても納得できません。私のクッキーデータを持って、何かクッキーのファイルを設定しますか?公式コードの例を確認しました。
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, ""); /* just to start the cookie engine */
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "Curl perform failed: %s
", curl_easy_strerror(res));
return 1;
}
print_cookies(curl);
CURLOPT_COOKIFILEの後にコメントがあります。just to start the cookie engine。「cookieエンジンだけを開始します。」と訳しています。cookieエンジンを運転して、個別の方法を使ってもいいですか?さもなくばCURLOPTから_COOKIFILEではcookieのfileと関係があります。だから、curlでクッキーを獲得するには、ここに注意しなければなりません。