在 Alamofire DataRequest 上设置超时间隔
Setting timeoutInterval on Alamofire DataRequest
我正在制作一个自定义 class,它在初始化程序中使用 Alamofire DataRequest
。现在我想给它添加一个 timeoutInterval,但是我得到了编译错误
Value of type 'DataRequest' has no member 'timeoutInterval'
代码如下:
init(request: DataRequest, timeoutInterval: Double = 10) {
request.timeoutInterval = timeoutInterval // <- compile error here
self.request = request
}
显然 Alamofire DataRequest
没有 属性。但是有没有其他方法以这种方式指定请求的超时(最好不使用 SessionManager )? URLRequest
有,所以应该可以,但我不知道怎么做。
我知道之前在 Stack Overflow 上有人问过这个问题,但我找不到适合这种情况的答案。
在 Alamofire 5.1 中,我们向顶级 request
方法添加了一个 requestModifier
参数,使您可以访问将要执行的 URLRequest
。
在 Alamofire 4 中,您有一些不太优雅的选项。设置它的一种直接方法是使用 RequestAdapter
将其设置为请求管道的一部分。另一个更复杂的选项是从采用单个参数(例如 headers)的顶级 request
方法移动到采用 URLRequestConvertible
值的 API 方法。这样您就可以完全控制 Alamofire 代表您执行的 URLRequest
s。
我正在制作一个自定义 class,它在初始化程序中使用 Alamofire DataRequest
。现在我想给它添加一个 timeoutInterval,但是我得到了编译错误
Value of type 'DataRequest' has no member 'timeoutInterval'
代码如下:
init(request: DataRequest, timeoutInterval: Double = 10) {
request.timeoutInterval = timeoutInterval // <- compile error here
self.request = request
}
显然 Alamofire DataRequest
没有 属性。但是有没有其他方法以这种方式指定请求的超时(最好不使用 SessionManager )? URLRequest
有,所以应该可以,但我不知道怎么做。
我知道之前在 Stack Overflow 上有人问过这个问题,但我找不到适合这种情况的答案。
在 Alamofire 5.1 中,我们向顶级 request
方法添加了一个 requestModifier
参数,使您可以访问将要执行的 URLRequest
。
在 Alamofire 4 中,您有一些不太优雅的选项。设置它的一种直接方法是使用 RequestAdapter
将其设置为请求管道的一部分。另一个更复杂的选项是从采用单个参数(例如 headers)的顶级 request
方法移动到采用 URLRequestConvertible
值的 API 方法。这样您就可以完全控制 Alamofire 代表您执行的 URLRequest
s。