JiveLoggingHTTPProtocol 0.2.5

JiveLoggingHTTPProtocol 0.2.5

测试已测试
语言语言 Obj-CObjective C
许可证 BSD
发布最后发布2015年11月

Heath Borders 维护。



基于 Apple的 CustomHTTPProtocolJLHPLoggingHTTPProtocol 将所有可见于 NSURLProtocol 系统的请求和响应记录到控制台。这应仅用于调试。它不会显示所有 HTTP 交互,因为身份验证交互对 NSURLProtocol 系统不可见。例如,NTLMNSURLProtocol 系统看到的请求被接受之前,会使用多个 HTTP 请求和响应进行身份验证。此外,某些 iOS 框架的 HTTP 调用根本不可见于 NSURLProtocol 系统全部(例如 AV Foundation streaming)。

用法

尽早在应用程序的生命周期中调用 +[JLHPLoggingHTTPProtocol start],因为 NSURLProtocol 注册调用顺序是反向注册顺序(首先注册的 NSURLProtocol 是最后调用的一个)。如果其他 NSURLProtocol 修改了请求,则这些修改应该在调用 JLHPLoggingHTTPProtocol 之前发生。

在 early 调用 +[JLHPLoggingHTTPProtocol start] 是一个好地方是 main.m。由于这应仅用于调试,所以 +[JLHPLoggingHTTPProtocol start] 应该以某种方式进行保护,以确保仅在调试模式下调用。以下示例中,Xcode 方案插入的参数将填充 NSUserDefaults 以触发调用。

//
//  main.m
//  JiveLoggingHTTPProtocolDemo
//
//  Created by Heath Borders on 3/2/15.
//  Copyright (c) 2015 Jive Software. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import <JiveLoggingHTTPProtocol/JLHPLoggingHTTPProtocol.h>

int main(int argc, char * argv[]) {
    @autoreleasepool {
        // NSUserDefaults grab any program arguments with the format `-name value`.
        // In the JiveLoggingHTTPProtocolDemo scheme, we have `-logHTTP YES` defined.
        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"logHTTP"]) {
            [JLHPLoggingHTTPProtocol start];
        }
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

许可证

根据 LICENSE 文件采用 BSD 许可证。