添加后CURLOPT_TIMEOUT_MS卷曲不发送任何内容



我有一个段循环,在该循环中,我将PUT请求发送到Google Firebase REST API中。它运行效果很好,但是如果我想将事情固定(While loop等待curl响应的每一轮,有时非常慢,超过200ms),我会尝试添加CURLOPT_TIMEOUT_MS并将其设置为低1毫秒。

tldr;添加行

之后

curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, 1L);

我的卷发不再将任何东西发送给服务器。或服务器以某种方式迫使客户端从请求接收返回值?

您告诉curl如果操作未完成 1毫秒。很快就完成了很多请求,尤其是当您使用DNS或仅在Internet上使用连接。

是的,大多数转移将只返回没有内容的CURLE_OPERATION_TIMEDOUT(28)。

这是卷曲的错误。

如果您的超时设置小于1S,则将直接返回错误。

解决方案是:

curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);

conn是卷曲的指针,例如:

CURL *conn = NULL;
curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);

相关内容

  • 没有找到相关文章

最新更新