Ich habe versucht, NSURLProtocol verwenden, um alle Anfragen in einem Swift 2.3-Projekt zu protokollieren. Es werden jedoch nicht alle URL-Anfragen protokolliert. Insbesondere werden alle Alamofire-Anfragen nicht aufgezeichnet.Swift - Log alle Anfragen in Mac App
Beispielcode
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
}
}
Ich habe versucht, die Methode aus dieser Antwort zu verwenden, und es hat nicht funktioniert. http://StackOverflow.com/A/28720198/1449607 – datinc
Ja, aber Sie müssen die Konfiguration in den Sitzungsmanager injizieren und dann anstelle von 'Alamofire.request' verwenden – Alistra
Ich versuche, auch Drittanbieter-Dienste zu überwachen. Ich bin auf der Suche nach einer Lösung, mit der ich diese Anfragen ohne Änderung ihres Codes überwachen kann. – datinc