示例如何取消libCurl请求

问题描述 投票:5回答:4

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

res = curl_easy_perform(curl);
c curl libcurl
4个回答
9
投票

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


2
投票

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

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


1
投票

您还可以选择使用curl_multi_remove_handle。正如官方卷曲文件中所述:

“在使用过程中移除一个简单的手柄是完全合法的,并将有效地停止正在进行的转移,涉及这种简单的手柄。所有其他简单的手柄和转移将不受影响。”

C.F. https://curl.haxx.se/libcurl/c/curl_multi_remove_handle.html


0
投票

我想,curl_easy_cleanup是你的朋友。

© www.soinside.com 2019 - 2024. All rights reserved.