C++ LibCurl WriteCallback(异步?)-C++;

C++ LibCurl WriteCallback(异步?)-C++;,c++,curl,libcurl,C++,Curl,Libcurl,我正在使用以下代码成功地进行http POST调用: std::string curlString; CURL* pCurl = curl_easy_init(); if(!pCurl) return NULL; string outgoingUrl = Url; string postFields = fields; curl_easy_setopt(pCurl, CURLOPT_TIMEOUT, 0); curl_easy_setopt(pCurl, CURLOPT_URL,

我正在使用以下代码成功地进行http POST调用:

std::string curlString;
CURL* pCurl = curl_easy_init();

if(!pCurl)
    return NULL;

string outgoingUrl = Url;
string postFields = fields;

curl_easy_setopt(pCurl, CURLOPT_TIMEOUT, 0);

curl_easy_setopt(pCurl, CURLOPT_URL, outgoingUrl.c_str());
curl_easy_setopt(pCurl, CURLOPT_POST, 1);

curl_easy_setopt(pCurl, CURLOPT_POSTFIELDS, postFields.c_str());
curl_easy_setopt(pCurl, CURLOPT_POSTFIELDSIZE, (long)postFields.size());

curl_easy_setopt(pCurl, CURLOPT_WRITEFUNCTION, CurlWriteCallback);
curl_easy_setopt(pCurl, CURLOPT_WRITEDATA, &curlString);

curl_easy_perform(pCurl);

curl_easy_cleanup(pCurl);
写回调具有以下原型:

size_t CurlWriteCallback(char* a_ptr, size_t a_size, size_t a_nmemb, void* a_userp);
是否有一种异步执行此操作的方法?当前,它等待回调完成,然后返回curl\u easy\u perform。此阻止方法不适用于用户众多的服务器。

来自文档:

设置完毕后,告诉libcurl使用curl\u easy\u perform(3)执行传输。然后,它将执行整个操作,并且在完成之前不会返回(无论是否成功)

从文档中,与“轻松”界面相对的一个功能是:

  • 在同一线程中启用多个同时传输,而不会使应用程序变得复杂

    听起来好像你想用“多”的方法。< /P>可以找到一个使用C++中的多接口的例子,你是不是来解决这个问题?你能把你的答案加到这个问题上吗?