首页 > 解决方案 > C++ curl post在curl_easy_perform超时

问题描述

对 c++ 来说非常新,所有这些对于我可能犯的任何可怕的错误都非常抱歉。

我有一个发布功能,用于将数据发送到网站,然后将其他数据返回给我。问题是它在 curl_easy_perform 超时 这是我的来源。它不久前还在工作,但由于某种奇怪的原因它停止了。我可以向您保证,这不是我与许多其他人一起尝试过的网站。

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

string post(string source) {
    CURL *curl;
    CURLcode res;
    string readBuffer;
    curl_global_init(CURL_GLOBAL_ALL);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "mywebsite");
        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, source.length());
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, source.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

        res = curl_easy_perform(curl);
        cout << res << endl;
        curl_easy_cleanup(curl);
        return readBuffer;

    }
    curl_global_cleanup();
    return 0;
}

标签: c++curllibcurl

解决方案


解决了。结果发现我初始化控制台和主要功能的方式出了点问题,我不太明白。不管怎么说,多谢拉!


推荐阅读