我问我,如何取消卷曲请求:
res = curl_easy_perform(curl);
使用CURLOPT_PROGRESSFUNCTION回调并在您决定时返回非零以中止。也许您可以根据您的要求使用其他更合适的回调。
你不能轻易地从C中断中运行的函数;你需要使用信号。在您的程序中键入Ctrl + C应终止cURL调用,但默认情况下也会终止您的进程。要以编程方式发送信号,您需要单独的线程或进程来执行此操作。
根据您要解决的问题,您可能需要使用CURLOPT_TIMEOUT
设置curl_easy_setopt
。
您还可以选择使用curl_multi_remove_handle。正如官方卷曲文件中所述:
“在使用过程中移除一个简单的手柄是完全合法的,并将有效地停止正在进行的转移,涉及这种简单的手柄。所有其他简单的手柄和转移将不受影响。”
C.F. https://curl.haxx.se/libcurl/c/curl_multi_remove_handle.html
我想,curl_easy_cleanup
是你的朋友。