示例如何取消libCurl请求

use*_*350 5 c curl libcurl

我问我,如何取消卷曲请求:

res = curl_easy_perform(curl);
Run Code Online (Sandbox Code Playgroud)

kan*_*kan 9

使用CURLOPT_PROGRESSFUNCTION回调并在您决定时返回非零以中止.也许您可以根据您的要求使用其他更合适的回调.


Fra*_* L. 6

您还可以选择使用 curl_multi_remove_handle。如官方 curl 文档中所述:

“在使用时移除简易把手是完全合法的,并将有效地停止涉及该简易把手的正在进行的转移。所有其他简易把手和转移将不受影响。”

参见 https://curl.haxx.se/libcurl/c/curl_multi_remove_handle.html

  • `curl_multi_remove_handle`只能在使用multi接口时使用!它不能与“curl_easy_perform”一起使用,您需要调用“curl_multi_add_handle”来代替。 (2认同)

Fre*_*Foo 1

您无法轻易地从 C 内部中断正在运行的函数;你需要使用信号。在程序中键入 Ctrl+C 应终止 cURL 调用,但默认情况下也会终止进程。要以编程方式发送信号,您需要一个单独的线程或进程来执行此操作。

根据您要解决的问题,您可能需要CURLOPT_TIMEOUT设置curl_easy_setopt.