gpt4 book ai didi

Swift - 记录 mac 应用程序中的所有请求

转载 作者:行者123 更新时间:2023-11-30 12:41:44 25 4
gpt4 key购买 nike

我尝试使用 NSURLProtocol 记录 Swift 2.3 项目中的所有请求。然而,并非所有 URL 请求都会被记录。具体来说,所有 Alamofire 请求都不会被记录。

示例代码

class AppDelegate: NSObject, NSApplicationDelegate{
func applicationDidFinishLaunching(aNotification: NSNotification) {
NSURLProtocol.registerClass(TestURLProtocol)
Alamofire.request(.GET, SomeURL).responseSwiftyJSON({ (request, response, json, error) in })
}
}

class TestURLProtocol: NSURLProtocol {
override class func canInitWithRequest(request: NSURLRequest) -> Bool {
print("request \(request.URL!)") // never called
return false
}
}

最佳答案

我认为这是因为 Alamofire 使用新的 URLSession API,它不受 NSURLProtocol.registerProtocol 调用的影响。

您必须使用 URLSessionConfiguration 创建一个 URLSession,并将其 protocolClasses 数组设置为 [TestURLProtocol.self]

但是这样你就必须在任何地方使用自定义的 SessionManager 来记录请求,而不是使用隐式的 Alamofire.request 我认为。

关于Swift - 记录 mac 应用程序中的所有请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com