我问我,如何取消卷曲请求:
res = curl_easy_perform(curl);
答案 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
是你的朋友。