当请求失败时我需要修改请求的标头但是当我修改请求时请求不会改变retryWhen
这是我的实现:
func makeRequest(serviceRequest: URLRequest) {
let maxRetry = 2
var localRequest = serviceRequest
request(request: localRequest).retryWhen { errors in
return errors.enumerated().flatMap { (arg) -> Observable<Int64> in
localRequest.setValue("someValue", forHTTPHeaderField: "someKey")
let (index, error) = arg
return index <= maxRetry ? Observable<Int64>.timer(DispatchTimeInterval.microseconds(4),
scheduler: MainScheduler.instance) : Observable.error(error)
}
}.subscribe(onNext:{ result in
print(result)
}).disposed(by: disposeBag)
}
如果我po localRequest
在设置标题之后someKey
它会显示我的更改,但如果我po request
在请求函数中,请求保持不变,没有任何变化。你们中的任何人都知道我可以做些什么来更改中的请求retryWhen
?
我会非常感谢你的帮助。