Ios Alamofire 5.0.0-rc.3请求侦听器Adapt方法未调用Alamofire,尽管在响应中出现任何错误时会调用retry

Ios Alamofire 5.0.0-rc.3请求侦听器Adapt方法未调用Alamofire,尽管在响应中出现任何错误时会调用retry,ios,swift,alamofire,Ios,Swift,Alamofire,Alamofire 5.0.0-rc.3请求侦听器Adapt方法未调用Alamofire,尽管在响应中出现任何错误时会调用retry 方法: func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (AFResult<URLRequest>) -> Void) { } func adapt(rlrequest:urlRequest,对于会话:会话,完成:@esca

Alamofire 5.0.0-rc.3请求侦听器Adapt方法未调用Alamofire,尽管在响应中出现任何错误时会调用retry

方法:

    func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (AFResult<URLRequest>) -> Void) {
}
func adapt(rlrequest:urlRequest,对于会话:会话,完成:@escaping(AFResult)->Void){
}
类拦截器:请求拦截器{
func adapt(urlRequest:urlRequest,对于会话:会话,完成:@escaping(AFResult)->Void){
打印(“调整:=”)
完成(.success(urlRequest))
}
func重试(u请求:请求,针对会话:会话,由于错误:错误,完成:@escaping(RetryResult)->Void){
打印(“重试:=”)
完成(.donotry)
}
}
不同类别中的网络请求方法:

    public func request<T: Codable> (_ urlConvertible: URLRequestConvertible) -> Observable<T> {
        return Observable<T>.create { observer in

            // 1
            print("Url := \(urlConvertible.urlRequest!.url!)")

            // 2
            let request = AF.request(urlConvertible, interceptor: Interceptor()).responseDecodable { (response: AFDataResponse<T>) in

                if let data = response.data{
                    print("Response := \(String(decoding: data, as: UTF8.self))")
                }
                else{
                    print("data is nil")
                }

                switch response.result {
                case .success(let value):
                    print("value :-> \(value)")
                    observer.onNext(value)
                    observer.onCompleted()
                case .failure(let error):

                    observer.onError(error)
                }
            }

            //Finally, we return a disposable to stop the request
            return Disposables.create {
                request.cancel()
            }
        }

    }
public func请求(\urlconverable:urlrequestconverable)->可观察{
返回可观察的。在中创建{observer
// 1
打印(“Url:=\(urlconverable.urlRequest!.Url!))
// 2
让request=AF.request(urlconverable,interceptor:interceptor()).responseDecodable{(response:AFDataResponse)在
如果let data=response.data{
打印(“响应:=\(字符串(解码:数据,如:UTF8.self)))
}
否则{
打印(“数据为零”)
}
开关响应。结果{
成功案例(let value):
打印(“值:->\(值)”)
observer.onNext(值)
observer.onCompleted()
案例。失败(let错误):
observer.onError(错误)
}
}
//最后,我们返回一个一次性消息来停止请求
归还一次性物品。创建{
请求取消()
}
}
}
参见此处:

未调用该函数,因为存在歧义

在拦截器中:

添加以下内容:

typealias AdapterResult = Swift.Result<URLRequest, Error>
它应该有效

typealias AdapterResult = Swift.Result<URLRequest, Error>
@escaping (RetryResult)