Mam niestandardową klasę NSURLProtocol w celu dostarczenia danych testowych podczas eksperymentowania z Alamofire, ale nie wydaje się, aby była używana podczas wysyłania żądań za pomocą metody żądania Menedżera .Metoda canInitWithRequest w niestandardowej klasie NSURLProtocol nie jest wyzwalana podczas korzystania z Alamofire
Żądanie przechodzi i zwraca wynik w porządku, ale nie powoduje canInitWithRequest:
NSURLProtocol.registerClass(DBDummyURLProtocol)
class MyURLRequestConvertible : URLRequestConvertible {
var URLRequest: NSURLRequest {
return NSURLRequest(URL: NSURL(scheme: "http", host: "cnn.com", path: "/")!)
}
}
var myURLRequestConvertible = MyURLRequestConvertible();
Manager.sharedInstance.request(myURLRequestConvertible)
Gdybym użyć prostego NSURLConnection, metoda canInitWithRequest nazywa się spodziewałem:
NSURLProtocol.registerClass(DBDummyURLProtocol)
var request = NSURLRequest(URL: NSURL(scheme: "http", host: "cnn.com", path: "/")!)
NSURLConnection(request: request, delegate:nil, startImmediately:true)
Czy robię coś nie tak? Czy to powinno działać z Alamofire?
Warto wyjaśnić, że 'NSURLSession.shared' ma absolutnie respektować klas zarejestrowanych przy użyciu protokołu registerClass' '(_ :) jednak sesje utworzone przy użyciu dowolnych metod inicjalizujących (tj. nie sesji współdzielonej) nie. To ostatnie jest tym, czego używa Alamofire, i dlatego ignoruje 'registerClass (_ :)'. – paulvs