【发布时间】:2016-11-02 09:51:09
【问题描述】:
我在 iOS 中使用 libcurl 进行网络请求,使用选项 CURLOPT_TIMEOUT 将超时设置为 60 秒。当请求期间网络断开时(curl_easy_perform (curl)),此调用将在 60 秒后达到超时后才会返回。
我检查了 curl 文档中的回调,但没有找到合适的。
我可以注册任何回调来检测请求期间的网络断开吗?所以我可以直接中断请求。
【问题讨论】:
我在 iOS 中使用 libcurl 进行网络请求,使用选项 CURLOPT_TIMEOUT 将超时设置为 60 秒。当请求期间网络断开时(curl_easy_perform (curl)),此调用将在 60 秒后达到超时后才会返回。
我检查了 curl 文档中的回调,但没有找到合适的。
我可以注册任何回调来检测请求期间的网络断开吗?所以我可以直接中断请求。
【问题讨论】:
如果 libcurl 知道连接断开,那么它将返回传输失败。当 libcurl 不知道连接断开时,它无法对此做任何事情,它必须等待超时。
这在 curl 常见问题解答条目 Why doesn't curl return an error when the network cable is unplugged? 中也有进一步解释
【讨论】: