我正在使用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}}到控制台吗?
答案 0 :(得分:3)
如果您初始化NetworkLoggerPlugin
,则默认情况下其cURL
标记设置为false
。像NetworkLoggerPlugin(cURL: true)
,willSendRequest
一样初始化它应该打印cURL
。
根据GitHub上的@BasThomas:https://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))
])