首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLSession超时

NSURLSession超时
EN

Stack Overflow用户
提问于 2016-01-03 21:16:13
回答 1查看 15K关注 0票数 1

我有一个函数,在该函数中,我请求获得一个JSON

代码语言:javascript
复制
let request = NSMutableURLRequest(URL: NSURL(string: path)!)
let session = NSURLSession.sharedSession()

session.configuration.timeoutIntervalForRequest = 5
session.configuration.timeoutIntervalForResource = 5

let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
     let json:JSON = JSON(data: data!)
     onCompletion(json, error)
})
task.resume()

这是可行的,但我对超时有问题。如果请求超过5秒,我想取消操作。有什么办法吗?

调用可能需要超过5秒,但它仍然会触发,超时不会做任何事情。如果超时被触发,我必须做些什么吗?

更新

代码语言:javascript
复制
        let request = NSMutableURLRequest(URL: NSURL(string: path)!)

        let urlconfig = NSURLSessionConfiguration.defaultSessionConfiguration()
        urlconfig.timeoutIntervalForRequest = 5
        urlconfig.timeoutIntervalForResource = 5
        let session = NSURLSession(configuration: urlconfig, delegate: self, delegateQueue: nil)

        let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
            let json:JSON = JSON(data: data!)
            onCompletion(json, error)
        })
        task.resume()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-03 21:27:29

不能更改sharedSession或会话configuration属性的超时。您必须在创建会话时设置超时。有关如何创建会话及其超时的示例,请参阅此示例:https://stackoverflow.com/a/30427187/78496

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34581690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档