没有用cURL C ++保存的cookie,这样一个简单而干净的代码示例是行不通的

时间:2012-03-27 05:54:29

标签: c++ curl libcurl

为什么不存储cookie?我制作的本地网站有一个setcookie(“test”,time());在PHP中,它通常在浏览器中工作,但在cURL中它只是不起作用,我甚至不知道该怎么做,这是我通过修剪代码最简单,但仍然不保存cookie在一个文件中。它甚至没有创建文件来保存它(顺便说一下,Windows有权在根目录中添加任何文件,因为我一直在那里移动和创建文件),是的,网站示例设置了cookie。这有什么问题?

内容输出正确且应该有效。但它只是不起作用。 :/

提前感谢。

#include <curl/curl.h>
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) {
            ((std::string*)userp)->append((char*)contents, size * nmemb);
            return size * nmemb;
        }

int main () {
        CURL *curl2;
        CURLcode res;




        curl_global_init(CURL_GLOBAL_ALL);



       string url2 = "http://localhost/test.php";
       url2 = "http://www.facebook.com";

        curl2 = curl_easy_init();
        if(curl2) {

            string html2 = "";
            struct curl_slist *chunk = NULL;


        curl_easy_setopt(curl2, CURLOPT_URL, url2.c_str());     
        curl_easy_setopt(curl2, CURLOPT_COOKIEFILE, "C:\\teste.txt");
        curl_easy_setopt(curl2, CURLOPT_COOKIEJAR, "C:\\teste.txt");                
        curl_easy_setopt(curl2, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl2, CURLOPT_WRITEDATA, &html2);


        res = curl_easy_perform(curl2);

        std::cout << "RESULT: " << html2;

        }


        _getch();
        return 0;
}

1 个答案:

答案 0 :(得分:1)

请记得致电curl_easy_cleanup(curl2)