gpt4 book ai didi

swift - Alamofire 忽略 timeoutIntervalForRequest 和 timeoutIntervalForResource 参数

转载 作者:行者123 更新时间:2023-11-30 10:01:35 25 4
gpt4 key购买 nike

我目前正在尝试减少 iOS 应用程序中每个 Alamofire 远程调用的 NSURLSessionConfigurationtimeoutIntervalForRequesttimeoutIntervalForResource 的默认值,因为我不希望它分别等待 60 秒和 7 天。

这是我的代码:

Alamofire.Manager.sharedInstance.session.configuration.timeoutIntervalForRequest = 30
Alamofire.Manager.sharedInstance.session.configuration.timeoutIntervalForResource = 30

let parameters = [
"foo": [1,2,3],
"bar": [
"baz": "qux"
]
]

Alamofire.Manager.sharedInstance.request(.POST, "someURL", parameters: parameters, encoding: .JSON) {
(response) in

print(response.timeline)
}

这是我的日志:

Timeline: { "Latency": 60.977 secs, "Request Duration": 60.977 secs, "Serialization Duration": 0.000 secs, "Total Duration": 60.977 secs }

如您所见,Request Duration 值超过 30 秒。

这是否取决于我使用 Alamofire.Manager.sharedInstance.request 而不是 Alamofire.request 的事实?

最佳答案

我很确定这是因为您无法更改默认管理器的配置(或者至少我认为您不能,可能是一个错误)。

尝试实例化一个新的并添加自定义的 NSURLSessionConfiguration。

例如:

var manager:Alamofire.Manager?

func initManager(timeoutInterval:Double) {
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()

configuration.timeoutIntervalForRequest = timeoutInterval
configuration.timeoutIntervalForResource = timeoutInterval

manager = Alamofire.Manager(configuration: configuration)
}

// then use manager!.request to do your request

关于swift - Alamofire 忽略 timeoutIntervalForRequest 和 timeoutIntervalForResource 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38206150/

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