【发布时间】:2016-01-15 03:54:37
【问题描述】:
是否可以为每个请求设置不同的过期超时?
我发现的唯一方法是使用不同的 NSURLSessionConfiguration 创建一个新的 NSURLSession 并更改 timeoutIntervalForResource。像 Alamofire 这样的框架也是如此。
【问题讨论】:
标签: ios nsurlsession alamofire nsurlsessionconfiguration
是否可以为每个请求设置不同的过期超时?
我发现的唯一方法是使用不同的 NSURLSessionConfiguration 创建一个新的 NSURLSession 并更改 timeoutIntervalForResource。像 Alamofire 这样的框架也是如此。
【问题讨论】:
标签: ios nsurlsession alamofire nsurlsessionconfiguration
你绝对可以做到这一点。您可以直接在 NSMutableURLRequest 上设置值,该值可以传递到 Alamofire。
let URL = NSURL(string: "https://httpbin.org/get")!
let mutableURLRequest = NSMutableURLRequest(URL: URL)
mutableURLRequest.timeoutInterval = 5.0
Alamofire.request(mutableURLRequest)
.responseJSON { response in
debugPrint(response)
}
您无法控制每个请求的timeoutIntervalForResource。 NSURLRequest 上的超时间隔属性等同于NSURLSessionConfiguration 上的timeoutIntervalForRequest。更多详情here.
【讨论】:
timeoutInterval 相当于 NSURLSessionConfiguration timeoutIntervalForResource。是否可以根据请求更改timeoutIntervalForRequest?
timeoutIntervalForRequest 可以使用 timeoutInterval 为每个请求设置,但 timeoutIntervalForResource 这是我需要的不能
是的,你可以这样做-
使用此代码
[[[NSURLSession sharedSession] configuration] setTimeoutForResource:30];
您只需更改不同视图控制器中的 setTimeForResource。
【讨论】: