Reqres 是一个简单的库,用于在应用程序中记录所有请求和响应。它支持 Alamofire 以及通过原生 NSURLSession 发出的请求。
⬆️ POST 'https://ackee.cz/examples'
Headers: [
Accept-Encoding : gzip;q=1.0, compress;q=0.5
Accept-Language : en-US;q=1.0
Content-Type : application/json
User-Agent : Reqres_Example/org.cocoapods.demo.Reqres-Example (1; OS Version 9.3 (Build 13E230))
Content-Length : 13
]
Body: {
"foo" : "bar"
}
...
⬇️ POST https://ackee.cz/examples (✅ 201 Created) [time: 0.54741 s]
Headers: [
Vary : Authorization,Accept-Encoding
Content-Encoding : gzip
Content-Length : 13
Server : Apache
Content-Type : application/json
Date : Mon, 05 Sep 2016 07:33:51 GMT
Cache-Control : no-cache
]
Body: {
"foo" : "bar"
}
安装
CocoaPods
Reqres 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:
pod "Reqres"
Carthage
您可以使用 Carthage。在 Cartfile 中指定
github "AckeeCZ/Reqres"
运行 carthage update
来构建框架并将构建的 Reqres.framework 拖放到您的 Xcode 项目中。遵循 构建说明。 新问题。
使用方法
使用Alamofire和NSURLSession初始化有所不同。
Alamofire
创建适当的配置的SessionManager
以与Alamofire一起使用。
let configuration = Reqres.defaultSessionConfiguration()
configuration.httpAdditionalHeaders = SessionManager.defaultHTTPHeaders
let alamofireManager = SessionManager(configuration: configuration)
Reqres.sessionDelegate = alamofireManager.delegate
然后您必须使用此管理器进行所有请求,因此将所有Alamofire.request(...)
替换为alamofireManager.request(...)
不使用Alamofire的使用方法
在应用程序启动时注册Reqres,它将监控和记录您通过NSURLSession或NSURLConnection做出的任何请求。
Reqres.register()
定制
您可以做一些设置,使其满足您的要求。
自定义日志记录器
Reqres 使用默认的 print()
进行日志记录,以避免不必要的依赖,但它已经准备好支持任何日志框架。创建一个符合 ReqresLogging
协议的自定义日志记录器类,并将其设置为 Reqres,这样就可以了。
class MyLogger: ReqresLogging {
...
}
Reqres.logger = MyLogger()
日志级别
您可以使用 3 个不同的日志级别
- 无 - 适用于生产使用,完全禁用所有 Reqres 功能
- 轻 - 只记录基本信息(方法、URL、状态码和时间)
⬆️ POST 'https://ackee.cz/examples'
...
⬇️ POST https://ackee.cz/examples (✅ 201 Created) [time: 0.54741 s]
- 详细 - 还记录头部信息和正文内容(见上面的示例)
Reqres 默认使用 详细
日志级别。要更改日志级别,只需设置 Reqres.logger.logLevel
的正确值即可
表情符号
Reqres 使用表情符号来使日志更容易阅读,并使其至少有些有趣和优雅。当然,如果您不喜欢这样,您可以关闭它。
Reqres.allowUTF8Emoji = false
分叉此仓库
如果您在自己的项目中使用了 Reqres,请发推文给我们 @ackeecz。我们非常愿意听听您的想法!
关爱分享
在决定开源我们的内部项目时,我们将此工具和存储库在我们的#care-to-share
操作中开源。
作者
Ackee团队。我们受到了andysmart的Timberjack的启发。
许可协议
Reqres在MIT许可下提供。有关更多信息,请参阅LICENSE文件。