SWHttpTrafficRecorder 1.0.2

SWHttpTrafficRecorder 1.0.2

测试已测试
Lang语言 Obj-CObjective C
许可证 自定义
发布最后发布2016年8月

Sunny Wang维护。



  • 作者
  • Sunny Wang

SWHttpTrafficRecorder 提供了一种简单的记录设备文件系统在使用您的应用程序时所有 HTTP(s) 流量的方法。它可以用于不同的目的,例如测试、回放工作流程或记录应用程序的网络活动以进行调试。查看 OHHTTPStubsNocillaMocktail 以了解如何使用已记录的文件(此库在上述框架使用中受到启发)。该库仅开发用于测试目的。我们强烈建议不要在生产环境中使用它。但是,如果您选择包括它,则必须考虑安全因素。

注意:如果您喜欢这个库,请随时使用页面上方的按钮进行分支或收藏。

设置

将项目集成

手动

或者,由于库中只包含两个文件(SWHttpTrafficRecorder.hSWHttpTrafficRecorder.m),您只需将它们放在项目的任何地方即可。

入门

尽管库高度可定制,但您只需插入一行代码即可开始。

Objective C
[[SWHttpTrafficRecorder sharedRecorder] startRecording];
Swift
SWHttpTrafficRecorder.sharedRecorder().startRecording()

注意NSURLConnectionNSURLSession 都受支持,包括 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)流量活动。总的来说,该库具有高度的可定制性,包括以下可配置参数:

  • recordingFormat:记录器将要使用的记录格式。可以是Mocktail、仅响应体或HTTP(s)原始消息。
  • fileNamingBlock:记录文件的名称。每个HTTP(s)请求将单独记录文件,文件名可以自定义。默认情况下,它使用请求的最后一段路径组件、时间戳和数字的组合。
  • recordingTestBlock:是否记录或跳过HTTP(s)请求。
  • progressDelegate:提供一个代理,当提供该代理时,它会接收到记录过程的更新,包括HTTP(s)请求收到、加载和记录时。
  • base64TestBlock:是否对响应体进行Base64编码。仅适用于Mocktail格式。默认情况下,只有图像被Base64编码。
  • urlRegexPatternBlock:URL匹配正则表达式。仅适用于Mocktail格式。默认情况下,使用路径并将其作为.*替换查询参数值。
  • replacementDict:包含有关要由相应标记符替换的数据信息。仅适用于Mocktail格式。如果没有提供值,则不执行替换。
  • createFileInCustomFormatBlock:使用此参数来自定义任何格式的记录,您可以实现任何格式。

需求

该库已在iOS 7及其以上版本中进行了测试和验证。旧版本可能也可以工作,但并未明确测试。它仅需要Foundation框架,该框架可能包含在任何一个iOS项目中。

您可能需要最新的开发者工具才能构建示例项目并运行测试。

安全考虑

在为HTTP(s)请求创建文件时,记录器使用NSFileProtectionComplete作为NSFileProtectionKey属性的值来提高文件安全性。这是一个通用库,旨在记录和监控流量活动。然而,每个应用程序都可以根据其自身政策和法规自行决定记录和监控的内容。

路线图

该项目处于早期阶段。我们打算将其应用于内部和外部不同的项目,并修复发现的任何问题。此外,我们还将继续改进它,如下所述:

  1. 创建回归测试套件,以确保未来的贡献不会破坏现有功能;
  2. 通过维基页面提供更多文档和示例代码;

如果您想帮助上述任何内容或对如何增强它或修复错误有其他想法,非常欢迎您发送Pull请求/新建问题/评论/提问。

贡献

我们欢迎您对Capital One开源项目的兴趣。任何对该项目的贡献者都必须接受并签署Capital One贡献者许可协议(CLA)。除了本协议授予Capital One及其通过Capital One分发的软件的许可外,您保留对您的贡献的所有权利、所有权和利益;本协议不影响您使用自己的贡献进行其他用途的权利。

CLA链接