在 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 代表您执行的 URLRequests。