如何使用Swift Moya测量响应时间?

如何使用Swift Moya测量响应时间?,swift,rx-swift,moya,Swift,Rx Swift,Moya,正如我在Alamofire上所知道的,我们有一个timeline对象,可以从中提取响应时间。 但是,如何从Moya请求中获得响应时间 public final class Response: CustomDebugStringConvertible, Equatable { /// The status code of the response. public let statusCode: Int /// The response data. public

正如我在Alamofire上所知道的,我们有一个timeline对象,可以从中提取响应时间。 但是,如何从Moya请求中获得响应时间

public final class Response: CustomDebugStringConvertible, Equatable {

    /// The status code of the response.
    public let statusCode: Int

    /// The response data.
    public let data: Data

    /// The original URLRequest for the response.
    public let request: URLRequest?

    /// The HTTPURLResponse object.
    public let response: HTTPURLResponse? //this does not return response time
}

您可以使用ClosureEventMonitor自定义会话

class MoyaConfig {

    static let monitor: ClosureEventMonitor = {
        let monitor = ClosureEventMonitor()
        monitor.taskDidFinishCollectingMetrics = { _, task, metrics in
            // do something with the metrics (URLSessionTaskMetrics)
        }
        return monitor
    }()

    static let apiSession: Session = {
        let configuration = URLSessionConfiguration.default
        let session = Session(configuration: configuration, startRequestsImmediately: false, eventMonitors: [monitor])
        return session
    }()
}
let api = MoyaProvider<API>(session: MoyaConfig.apiSession)
class-MoyaConfig{
静态let监视器:ClosureEventMonitor={
let monitor=ClosureEventMonitor()
monitor.taskDidFinishCollectingMetrics={{中的任务、指标
//使用度量(URLSessionAskMetrics)执行一些操作
}
返回监视器
}()
静态会话:会话={
let configuration=URLSessionConfiguration.default
let session=session(配置:configuration,startRequestsImmediately:false,eventMonitors:[监视器])
返回会话
}()
}

让api=MoyaProvider

您可以使用ClosureEventMonitor自定义会话

class MoyaConfig {

    static let monitor: ClosureEventMonitor = {
        let monitor = ClosureEventMonitor()
        monitor.taskDidFinishCollectingMetrics = { _, task, metrics in
            // do something with the metrics (URLSessionTaskMetrics)
        }
        return monitor
    }()

    static let apiSession: Session = {
        let configuration = URLSessionConfiguration.default
        let session = Session(configuration: configuration, startRequestsImmediately: false, eventMonitors: [monitor])
        return session
    }()
}
let api = MoyaProvider<API>(session: MoyaConfig.apiSession)
class-MoyaConfig{
静态let监视器:ClosureEventMonitor={
let monitor=ClosureEventMonitor()
monitor.taskDidFinishCollectingMetrics={{中的任务、指标
//使用度量(URLSessionAskMetrics)执行一些操作
}
返回监视器
}()
静态会话:会话={
let configuration=URLSessionConfiguration.default
let session=session(配置:configuration,startRequestsImmediately:false,eventMonitors:[监视器])
返回会话
}()
}
让api=MoyaProvider