当前位置: 首页 > wzjs >正文

什么是多页面网站跨国网站浏览器

什么是多页面网站,跨国网站浏览器,淘宝做图片的网站,辽宁建设工程信息网查询截图如何用Moya自定义插件打印网络请求日志 Moya本身不提供详细的日志打印功能,但可以通过自定义插件来实现。以下步骤展示如何创建并配置一个日志插件。 创建自定义日志插件 定义一个遵守PluginType协议的插件类,实现必要的协议方法: import…

如何用Moya自定义插件打印网络请求日志

Moya本身不提供详细的日志打印功能,但可以通过自定义插件来实现。以下步骤展示如何创建并配置一个日志插件。

创建自定义日志插件

定义一个遵守PluginType协议的插件类,实现必要的协议方法:

import Moyafinal 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: \(response.statusCode)")print("Headers: \(response.response?.allHeaderFields ?? [:])")if let json = try? response.mapJSON() {print("Response Data: \(json)")} else if let string = try? response.mapString() {print("Response Data: \(string)")}case .failure(let error):print("\n❌ Error:")print("Error: \(error.localizedDescription)")}}
}

将插件添加到Moya Provider

创建Moya Provider实例时,将自定义插件添加到plugins数组中:

let provider = MoyaProvider<YourTargetType>(plugins: [NetworkLoggerPlugin()])

优化日志输出格式

如果需要更美观的日志输出,可以改进打印格式:

func willSend(_ request: RequestType, target: TargetType) {guard let urlRequest = request.request else { return }let output = """\n╔═══════════════════════════════════════════════════════════║ 🚀 Request║ URL: \(urlRequest.url?.absoluteString ?? "")║ Method: \(urlRequest.httpMethod ?? "")║ Headers: \(urlRequest.allHTTPHeaderFields ?? [:])║ Body: \(urlRequest.httpBody.flatMap { String(data: $0, encoding: .utf8) } ?? "None")╚═══════════════════════════════════════════════════════════"""print(output)
}

使用第三方日志库

对于更专业的日志记录,可以集成CocoaLumberjack等日志库:

import CocoaLumberjackfinal class NetworkLoggerPlugin: PluginType {func willSend(_ request: RequestType, target: TargetType) {DDLogInfo("Request: \(request.request?.url?.absoluteString ?? "")")}func didReceive(_ result: Result<Response, MoyaError>, target: TargetType) {switch result {case .success(let response):DDLogInfo("Response: \(response.statusCode)")case .failure(let error):DDLogError("Error: \(error.localizedDescription)")}}
}

过滤敏感信息

在打印日志时,建议过滤掉授权头等敏感信息:

func willSend(_ request: RequestType, target: TargetType) {guard let urlRequest = request.request else { return }var headers = urlRequest.allHTTPHeaderFields ?? [:]headers["Authorization"] = headers["Authorization"] != nil ? "*****" : nilprint("Headers: \(headers)")
}

http://www.dtcms.com/wzjs/122085.html

相关文章:

  • 新乡谷雨网络公司做的网站怎么样佛山seo技术
  • 网站根目录有哪些站长工具百度百科
  • 搭建网站后的网址网站软文推广范文
  • 东莞网站建设_东莞网页设计seo查询网站是什么
  • 宜宾网站开发公司腾讯nba新闻
  • 线上教学网站龙岗seo优化
  • 小米手机网站建设目标开发一个app平台大概需要多少钱?
  • 个人网站能 做淘客吗seo推广seo技术培训
  • 免费广告设计网站营销
  • 怎么做bbs论坛网站关于网站推广
  • 东莞谢岗网站建设如何推广网页
  • 龙华营销型网站建设公司营销技巧和营销方法培训
  • 西安建设科技专修学院官方网站微信小程序怎么做店铺
  • 建设网站查证书市场营销培训
  • 做外贸网哪些网站免费大数据营销经典案例
  • 机关 网站 建设方案小程序开发平台有哪些
  • 珠海网站建设网络有限公司军事新闻最新24小时
  • html图标代码大全合肥网站推广优化公司
  • 怎么做飞机票的图片网站品牌广告
  • dede旅游网站源码徐州seo公司
  • 沈阳模板 网站建设2023年新闻热点事件
  • 日本做a图片视频在线观看网站网络服务商
  • 做国际贸易的有哪有个网站pc端百度
  • 网站建设毕业设计提问百度搜索引擎广告位的投放
  • 湛江企业自助建站系统线上推广怎么做
  • 怎么做网站栏目业务推广网站
  • 网站明链怎么做成都关键词排名推广
  • 最先进的深圳网站建设优化大师免费下载安装
  • 有哪些做问卷调查挣钱的网站营销推广方案
  • 做一家网站需要多少钱推广普通话宣传语100字