gpt4 book ai didi

ios - Alamofire:无论 timoutIntervalForRequest 如何,1 秒内为 'The request timed out'

转载 作者:行者123 更新时间:2023-11-28 08:22:12 24 4
gpt4 key购买 nike

我试图在我的应用程序中使用 Alamofire,但在第一个请求中遇到了以下问题(我使用 URLSession 成功完成了)。

执行请求时,在 1-2 秒内我在日志中看到 -1001 The request timed out,尽管我为 session 设置了相对较长的间隔。

这是 HttpSession 自动取款机:

class HttpSession {

static let instance = HttpSession()
let sessionManager: SessionManager?

private init() {
let conf = URLSessionConfiguration.default
conf.timeoutIntervalForRequest = 30
sessionManager = Alamofire.SessionManager(configuration: conf)
}
}

我在这里提出要求:

HttpSession.instance.sessionManager!.request(url, method: .get, parameters: [:], encoding: JSONEncoding.default, headers: headers).responseJSON { response in
switch response.result {
case .success:
print("YAA!")
break
case .failure(let error):
print(error)
break
}
}

值得一提的是:当我尝试打印前后时间以查看时差时,值确实相差 30 秒,但在现实生活中需要 1-2 秒。我只在模拟器上测试过它。为了打印秒数,我在请求之前和响应中使用了以下代码片段两次:

let date: Date = Date()
print(Calendar.current.component(.second, from: date))

任何帮助将不胜感激,谢谢。

最佳答案

如果你检查 NSURLSessionConfiguration 源代码,你会发现这些注释:

/* default timeout for requests. This will cause a timeout if no data is transmitted for the given timeout value, and is reset whenever data is transmitted. */ public var timeoutIntervalForRequest: NSTimeInterval

/* default timeout for requests. This will cause a timeout if a resource is not able to be retrieved within a given timeout. */
public var timeoutIntervalForResource: NSTimeInterval

你还需要设置这个值:

conf.timeoutIntervalForResource = 30

关于ios - Alamofire:无论 timoutIntervalForRequest 如何,1 秒内为 'The request timed out',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963841/

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