使用Alamofire [Swift]为每个请求设置客户端超时时间?

10

我正在尝试为Swift的Alamofire设置客户端每个请求的超时时间。首席架构师告诉我要在NSURLRequest上设置超时时间,但我完全不知道该如何实际操作。

有没有做过这个的人可以给个例子?谢谢!

2个回答

17

我认为这段代码可能可行。

var alamofireManager : Alamofire.Manager?

func some(){
  let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
  configuration.timeoutIntervalForResource = 2 // seconds

  self.alamofireManager = Alamofire.Manager(configuration: configuration)
  self.alamofireManager!.request(.GET, "http://example.com/")
    .response { (request, response, data, error) in

    }
}

3
为什么使用 configuration.timeoutIntervalForResource 而不是 configuration.timeoutIntervalForRequest? - Troy Payne
2
设置timeoutIntervalForRequest解决了我的超时问题。在此之前,对API的长时间请求会超时。 - djbp

0

这是如何使用URLRequest设置每个请求超时时间的方法:

Alamofire.request(URLRequest(url: ..., cachePolicy: ..., timeoutInterval: 10))
    .response(...)

虽然这段代码片段可能是解决方案,但包括解释真的有助于提高您帖子的质量。请记住,您正在为未来的读者回答问题,而这些人可能不知道您的代码建议原因。 - milo526

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接