测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2015年3月 |
由 Kevin Harwood 维护。
依赖 | |
AFNetworking | ~> 2.1 |
AFNetworking/NSURLSession | ~> 2.1 |
AFNetworking 扩展,可自动生成您的所有网络请求的 HTTP 归档文件!
什么是 HTTP 归档(HAR)?这是一个允许您存储 HTTP 请求/响应以及元数据,并在 later time 查看这些信息以帮助调试的规范。
您可以在 这里 找到 HAR 规范,并在 这里 找到在线 HAR 查看器。您可以从 这里 下载一个示例 HAR 日志并将其拖放到在线查看器中查看。
还有许多支持 HAR 格式的工具,您可以在这里找到 这里。
完整的规范尚未完全实现,但已包含基本计时信息。通过将其发布给社区,我们希望实施更多高级日志数据。
使用 HARchiver 与创建其实例并给它发送开始信号一样简单。归档器将把请求直接存档到您指定的路径上的磁盘。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"log.har"];
self.afArchiver = [[AFHARchiver alloc] initWithPath:filePath error:nil];
[self.afArchiver startArchiving];
您可能会遇到只想归档特定操作的场景。最常见的使用情况是忽略日志图像文件以防止归档文件大小过大。对于 AFHTTPRequestOperations,您可以使用setShouldArchiveOperationBlock。对于 NSURLSessionTasks,您可以使用setShouldArchiveTaskBlock.
[self.afArchiver
setShouldArchiveOperationBlock:^BOOL(AFHTTPRequestOperation *operation) {
return [operation.responseSerializer isKindOfClass:[AFJSONResponseSerializer class]];
}];
[self.afArchiver
setShouldArchiveTaskBlock:^BOOL(NSURLSessionTask *task, id<AFURLResponseSerialization> responseSerializer, id serializedResponse) {
return [(NSObject*)responseSerializer isKindOfClass:[AFJSONResponseSerializer class]];
}];
}];
如果您的应用程序正在使用 AFNetworking 2.0.0,目标 iOS 6,并使用 NSURLConnection API,则继续使用 AFHARchiver 0.1.0。当前的 AFHARchiver 版本需要包含在 AFNetworking 2.0.0 中的 AF/NSURLSession API。
一些尚未实现的高级功能将导致更高级的日志。以下是一些包括以下内容:
由 Kevin Harwood 创建(邮箱 | Twitter)在 Mutual Mobile。
AFHARchiver 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。