如何用Moya自定义插件打印网络请求日志
Moya本身不提供详细的日志打印功能,但可以通过自定义插件来实现。以下步骤展示如何创建并配置一个日志插件。
创建自定义日志插件
定义一个遵守PluginType协议的插件类,实现必要的协议方法:
import Moya
final class NetworkLoggerPlugin: PluginType {
func willSend(_ request: RequestType, target: TargetType) {
guard let urlRequest = request.request else { return }
print("\n🚀 Request:")
print("URL: \(urlRequest.url?.absoluteString ?? "")")
print("Method: \(urlRequest.httpMethod ?? "")")
print("Headers: \(urlRequest.allHTTPHeaderFields ?? [:])")
if let body = urlRequest.httpBody, let bodyString = String(data: body, encoding: .utf8) {
print("Body: \(bodyString)")
}
}
func didReceive(_ result: Result<Response, MoyaError>, target: TargetType) {
switch result {
case .success(let response):
print("\n✅ Response:")
print("Status Code: \(r

最低0.47元/天 解锁文章
1377

被折叠的 条评论
为什么被折叠?



