gpt4 book ai didi

ios - NSMutableURLRequest的连接和完成超时

转载 作者:行者123 更新时间:2023-12-01 19:55:34 24 4
gpt4 key购买 nike

我们正在将CURL HTTP Get请求转换为本地IOS代码。使用CURL,我们可以设置两个不同的超时时间-CURLOPT_CONNECTTIMEOUT-如果无法连接,则 call 失败之前的时间,以及CURLOPT_TIMEOUT-如果尚未检索到所有数据,则 call 失败的时间。如果连接失败,我们希望它很快返回(10秒),但是我们可能会在慢速连接上下载大块数据,因此我们需要很大的完成超时时间(5分钟)。

我们如何使用NSMutableURLRequest设置不同的超时时间

目前,我们正在像这样设置单个超时

[urlRequest setTimeoutInterval:30.0f]

有没有办法像CURL那样设置两个单独的超时?我们目前正在设置哪个超时时间?连接超时或完成之一。

谢谢

肖恩

最佳答案

这是一个非常好的问题。我不清楚documentation:

如果在连接尝试期间请求保持空闲状态超过超时间隔,则认为该请求已超时。默认超时间隔为60秒。

我确实在Apple开发人员论坛中发现了这个helpful post,Apple员工对此进行了解释:

timeoutInterval属性等效于
timeoutIntervalForRequest属性。

他在NSURLSessionConfiguration上引用了property,可以将其附加到NSURLSession。如果设置timeoutIntervalNSURLRequest,它将用作配置上timeoutIntervalForRequest的值。该属性的文档确实提供了一些见解:

请求超时间隔控制任务多长时间(以秒为单位)
在放弃之前,应等待其他数据到达。计时器
每当有新数据到达时,与该值关联的值就会重置。什么时候
请求计时器达到指定的时间间隔而未收到任何请求
新数据,它将触发超时。

默认值为60

基于此,似乎这个值实际上都不是!

关于ios - NSMutableURLRequest的连接和完成超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42863628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com