NetworkInterceptor 0.0.8

NetworkInterceptor 0.0.8

Kenneth Poon 维护。



 
依赖
GzipSwift>= 0
URLRequest-cURL>= 0
 

  • depoon

NetworkInterceptor

这是一个简单的框架,展示了如何在 iOS 应用中拦截 URLRequest。这个框架允许您检查应用程序发出的所有出站请求的详细信息。这包括由第三方框架(如 FacebookSDK、Google Analytics 等)发出的请求。有可能使用此框架在非越狱设备上检查和拦截 App Store 应用。

安装

CocoaPods

NetworkInterceptor 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中

pod 'NetworkInterceptor'

主要组件

如何使用 NetworkInterceptor

示例 1:使用 NSLog 记录所有 http/https 请求

let requestSniffers: [RequestSniffer] = [
    RequestSniffer(requestEvaluator: AnyHttpRequestEvaluator(), handlers: [
        SniffableRequestHandlerRegistrable.console(logginMode: .nslog).requestHandler()
    ])
]

let networkConfig = NetworkInterceptorConfig(requestSniffers: requestSniffers)
NetworkInterceptor.shared.setup(config: networkConfig)
NetworkInterceptor.shared.startRecording()

示例 2:对于指向 "www.antennahouse.com" 的所有请求,将所有匹配的请求重定向到自定义 URL

let requestRedirectors: [RequestRedirector] = [
    RequestRedirector(requestEvaluator: DomainHttpRequestEvaluator(domain: "www.antennahouse.com"),         
        redirectableRequestHandler: AlternateUrlRequestRedirector(url: URL(string: "https://www.rhodeshouse.ox.ac.uk/media/1002/sample-pdf-file.pdf")!))
]

let networkConfig = NetworkInterceptorConfig(requestRedirectors: requestRedirectors)
NetworkInterceptor.shared.setup(config: networkConfig)
NetworkInterceptor.shared.startRecording()

可用的 Request Evaluators

AnyHttpRequestInterceptor.swift 拦截所有 http 和 https 请求

DomainHttpRequestEvaluator.swift 拦截所有与给定域名 URL 匹配的 http 和 https 请求

可用的 Sniffable Request Handlers

ConsoleLoggerSniffableRequestHandler.swift 将请求以 cURL 格式打印到控制台

SlackSniffableRequestHandler.swift 将请求以 cURL 格式发送到指定的 Slack 频道。您必须提供自己的 Slack 身份验证令牌和 Slack 频道 ID 才能使用此功能。

AlternateDomainSniffableRequestHandler.swift 将请求副本发送到备用域名

可用的 Request Redirectors

AlternateDomainRequestRedirector.swift 将请求重定向到不同的域名。

AlternateUrlRequestRedirector.swift 将请求重定向到完全不同的URL

如果您想在非您拥有的iOS设备应用中使用此框架

  • 创建一个新的动态框架项目,并使用 NetworkInterceptor pod。我们仅使用此框架来开始NetworkInterceptor录制。
  • 使用Objective C将代码加载到内存中。请参阅此仓库中的示例项目。
static void __attribute__((constructor)) initialize(void)