CURLOPT_COOKIEJAR和cookie文件

时间:2015-05-15 13:24:51

标签: curl cookies libcurl

我使用CURLOPT_COOKIEJAR(curl库),我将cookie保存在一个文件中," cookie.txt"。我无法找到它的文件。它在哪里?我在项目文件夹中搜索,没有。

这是我的代码:

curl_easy_setopt(handle,CURLOPT_COOKIESESSION,1);       // clean up session.
curl_easy_setopt(handle,CURLOPT_COOKIEJAR,"cookie.txt");
curl_easy_setopt(handle,CURLOPT_USERAGENT,userAgentMozilla);        // set the user agent
curl_easy_setopt(handle,CURLOPT_URL,lien.toUtf8().constData());     // set the url 
curl_easy_setopt(handle,CURLOPT_POSTFIELDSIZE,data.size()+4);     // size of the request.
curl_easy_setopt(handle,CURLOPT_POSTFIELDS,ba);  // aray of the POST request
res = curl_easy_perform(handle);  

2 个答案:

答案 0 :(得分:0)

当然你必须。

你可以试试这段代码:

CURLOPT_COOKIEJAR=>__DIR__."/cookie.txt",

CURLOPT_COOKIEJAR=>dirname(__FILE__)."/cookie.txt",

答案 1 :(得分:0)

不需要绝对路径。 正在清理cookie会话的CURLOPT_COOKIESESSION似乎与CURLOPT_COOKIEJAR冲突。这不会清理cookie会话,处理请求,然后将新cookie保存到您的文件中。但是,这将阻止在此请求中创建新的cookie会话。 正确的代码就是:

curl_easy_setopt(handle,CURLOPT_COOKIEJAR,"cookie.txt");
curl_easy_setopt(handle,CURLOPT_USERAGENT,userAgentMozilla);        // set the user agent
curl_easy_setopt(handle,CURLOPT_URL,lien.toUtf8().constData());     // set the url 
curl_easy_setopt(handle,CURLOPT_POSTFIELDSIZE,data.size()+4);     // size of the request.
curl_easy_setopt(handle,CURLOPT_POSTFIELDS,ba);  // aray of the POST request
res = curl_easy_perform(handle);