【发布时间】:2015-04-30 07:33:54
【问题描述】:
有没有办法在 C++ 中取消 curl_easy_perform??
我有一个场景,我试图连接到离线的网络资源,并且 curl_easy_perform 需要一定的时间才能返回 CURLE_COULDNT_CONNECT。 但与此同时,用户已经关闭了希望连接的 UI,我想立即切断 curl 连接,而不必等待它无法连接。
我已尝试存储我使用的 curl 指针:
CURL *pEasy = curl_easy_init ();
然后在它执行 curl_easy_perform 时我调用了
curl_easy_cleanup(pEasy);
试图释放或“停止” curl 连接,但它崩溃了,我从 curl_easy_perform 收到以下错误:
Unhandled exception at blah blah: Access violation reading location 0x00000004.
有没有办法可以取消连接尝试???? 我已阅读此链接:How can I immediately cancel a curl operation? 但它似乎在成功连接后处理取消卷曲连接。
编辑 - 解决方案
我发现如果我打电话:
curl_easy_reset( pEasy );
然后
curlResult = curl_easy_perform ( pEasy );
几乎立即返回结果 CURLE_OPERATION_TIMEDOUT。
我想这就是我需要的:)
【问题讨论】:
-
对不起,这个“解决方案”对我来说似乎完全错误......
-
对于“如何立即取消操作”的问题,这似乎不是一个解决方案。我也在寻找这个问题的直接答案。有的话请告诉我。