SWHttpTrafficRecorder 提供了一种简单的记录设备文件系统在使用您的应用程序时所有 HTTP(s) 流量的方法。它可以用于不同的目的,例如测试、回放工作流程或记录应用程序的网络活动以进行调试。查看 OHHTTPStubs、Nocilla 或 Mocktail 以了解如何使用已记录的文件(此库在上述框架使用中受到启发)。该库仅开发用于测试目的。我们强烈建议不要在生产环境中使用它。但是,如果您选择包括它,则必须考虑安全因素。
注意:如果您喜欢这个库,请随时使用页面上方的按钮进行分支或收藏。
或者,由于库中只包含两个文件(SWHttpTrafficRecorder.h
和 SWHttpTrafficRecorder.m
),您只需将它们放在项目的任何地方即可。
尽管库高度可定制,但您只需插入一行代码即可开始。
[[SWHttpTrafficRecorder sharedRecorder] startRecording];
SWHttpTrafficRecorder.sharedRecorder().startRecording()
注意:NSURLConnection
和 NSURLSession
都受支持,包括 AFNetworking 或任何使用 Cocoa 的 URL 加载系统的网络框架。
要使用基于 NSURLSession
的请求,您需要提供 NSURLSessionConfiguration
以进行记录,请参阅方法 - (BOOL)startRecordingAtPath:(NSString *)recordingPath forSessionConfiguration:(NSURLSessionConfiguration *)sessionConfig error:(NSError **) error
。
该库可以用来录制HTTP(s)流量,并支持以下3种常用的格式:Mocktail、仅响应体和HTTP(s)原始消息(与curl -is
输出的格式相同)。除此之外,它还可以通过进度更新代理来监控客户与Web服务之间的HTTP(s)流量活动。总的来说,该库具有高度的可定制性,包括以下可配置参数:
.*
替换查询参数值。该库已在iOS 7及其以上版本中进行了测试和验证。旧版本可能也可以工作,但并未明确测试。它仅需要Foundation框架,该框架可能包含在任何一个iOS项目中。
您可能需要最新的开发者工具才能构建示例项目并运行测试。
在为HTTP(s)请求创建文件时,记录器使用NSFileProtectionComplete
作为NSFileProtectionKey
属性的值来提高文件安全性。这是一个通用库,旨在记录和监控流量活动。然而,每个应用程序都可以根据其自身政策和法规自行决定记录和监控的内容。
该项目处于早期阶段。我们打算将其应用于内部和外部不同的项目,并修复发现的任何问题。此外,我们还将继续改进它,如下所述:
如果您想帮助上述任何内容或对如何增强它或修复错误有其他想法,非常欢迎您发送Pull请求/新建问题/评论/提问。
我们欢迎您对Capital One开源项目的兴趣。任何对该项目的贡献者都必须接受并签署Capital One贡献者许可协议(CLA)。除了本协议授予Capital One及其通过Capital One分发的软件的许可外,您保留对您的贡献的所有权利、所有权和利益;本协议不影响您使用自己的贡献进行其他用途的权利。