示例如何取消libCurl请求

时间:2011-12-07 13:21:51

标签: c curl libcurl

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

res = curl_easy_perform(curl);

4 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

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

根据您尝试解决的问题,您可能希望将CURLOPT_TIMEOUT设置为curl_easy_setopt

答案 2 :(得分:1)

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

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

c.f。 https://curl.haxx.se/libcurl/c/curl_multi_remove_handle.html

答案 3 :(得分:0)

我猜

curl_easy_cleanup是你的朋友。