从Moya请求生成cURL输出?

时间:2017-03-30 18:54:37

标签: ios alamofire moya

我正在使用Moya并需要打印cURL以获取网络请求。

  

通常,在Alamofire 4中,我会做这样的事情:

let req = Alamofire.request(someURLRequestConvertible)
debugPrint(req) // will print cURL
  

我对Moya的通话网站如下:

MyMoyaProvider.request(MyEndPoints.login(params)) { (result) in }

我已经查看了Moya的文档,但我似乎无法得到我正在寻找的结果。我已启用NetworkLoggingPlugin,但仍不确定如何为某些请求打印cURL。有人可以帮我找到正确的方法来打印Moya request的{​​{1}}到控制台吗?

2 个答案:

答案 0 :(得分:3)

如果您初始化NetworkLoggerPlugin,则默认情况下其cURL标记设置为false。像NetworkLoggerPlugin(cURL: true)willSendRequest一样初始化它应该打印cURL

根据GitHub上的@BasThomashttps://github.com/Moya/Moya/issues/1037#event-1027530791

答案 1 :(得分:0)

对于Moya 14.0。*

static fileprivate let provider = MoyaProvider<ApiService>(endpointClosure: { (target: ApiService) -> Endpoint in
    let defaultEndpoint = MoyaProvider.defaultEndpointMapping(for: target)
    switch target {
    default:
        let httpHeaderFields = ["Content-Type" : "application/json"]
        return defaultEndpoint.adding(newHTTPHeaderFields: httpHeaderFields)
    }
}, plugins: [
    NetworkLoggerPlugin(configuration: .init(formatter: .init(), output: { (target, array) in
        if let log = array.first {
            print(log)
        }
    }, logOptions: .formatRequestAscURL))
])