【发布时间】:2014-06-13 09:07:43
【问题描述】:
我正在使用 C++ 中的 curl 执行服务器请求,它以片段的形式返回响应,并且这些片段的大小也可能会有所不同。
在每件作品到达时,正在调用回调函数。问题是我无法检测到连接何时完成以便对我的父类执行另一个回调。
顺便问一下,我想知道我们是否可以设置和检测 curl 的超时时间?
简而言之,这是我的代码:
CURL *curl = curl_easy_init();
curl_global_init(CURL_GLOBAL_ALL);
curl_easy_setopt(curl, CURLOPT_URL, "My URL");
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "My Postfields");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
curl_global_cleanup();
默认回调:
size_t writeCallback(char* buf, size_t size, size_t nmemb, void* up)
{
//do something
//But how can I detect the last callback when connection finished
//in order to call an another one?
return size*nmemb;
}
【问题讨论】:
-
嗯。 在
curl_easy_perform返回之后,保存您的数据并进行后续工作怎么样? -
@WhozCraig:对不起,我的错。我删除了我之前的评论。看来你把我引向了正确的方向!