我一直在使用CURL进行所有HTTP通信。我需要知道服务器何时完成发送给我一个响应。根据卷曲文档,CURLOPT_XFERINFOFUNCTION正是为此而设计的。
但是,每次命中回调函数时,所有参数要么都是0,要么是dlnow ( 233 )之外的所有0。这不是预期的行为,而且我在谷歌搜索后还没有发现有类似问题的人。
回调启动:
curl_easy_setopt(handle, CURLOPT_XFERINFOFUNCTION, CLibCurlThreadTask::CurlProgress);
curl_easy_setopt(handle, CURLOPT_NOPROGRESS, 0L);回调函数:
int CLibCurlThreadTask::CurlProgress(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
{
if( dltotal > 0 || dlnow > 0 || ultotal > 0 || ulnow > 0)
{
CryLogAlways("UP: %" CURL_FORMAT_CURL_OFF_T " of %" CURL_FORMAT_CURL_OFF_T " DOWN: %" CURL_FORMAT_CURL_OFF_T " of %" CURL_FORMAT_CURL_OFF_T "\r\n", ulnow, ultotal, dlnow, dltotal);
}
return CURLE_OK;
}输出:
上升:0:0下降: 233 :0 上升:0:0下降: 233 :0 上升:0:0下降: 233 :0 上升:0:0下降: 233 :0
发布于 2017-02-08 08:09:53
这可能是32位/64位平台的问题。
请参阅:http://forum.lazarus.freepascal.org/index.php?topic=29767.0
https://stackoverflow.com/questions/30803965
复制相似问题