Ich habe eine Unterklasse von NSURLProtocol, Die NSURLConnection funktioniert gut.NSURLSession sessionWithConfiguration hat die benutzerdefinierte NSURLProtocol-Methode canInitWithRequest nicht aufgerufen
Und [NSURLSession sharedSession] funktioniert auch gut.
Aber [NSURLSession sessionWithConfiguration: Konfiguration] nicht funktioniert,
ich den Namen [NSURLProtocol register: NSURLProtocolSubclass.class];
Was ist ein Fehler?
NSString * stringUrl = @"https://www.apple.com/";
NSURL * url = [NSURL URLWithString:stringUrl];
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
urlRequest.HTTPMethod = @"GET";
NSURLSessionConfiguration * configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration];
configuration.timeoutIntervalForResource = 20.0;
//this can work, but I cann't edit.
//configuration.protocolClasses = @[NSURLProtocolSubclass.class];
//this can work.
NSURLSession * urlSession = [NSURLSession sharedSession];
//this not work.
//NSURLSession * urlSession = [NSURLSession sessionWithConfiguration:configuration];
//Task.
NSURLSessionDataTask * task = [urlSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPURLResponse * httpUrlResponse = (NSHTTPURLResponse *)response;
NSLog(@"---- session: %ld", (long)httpUrlResponse.statusCode);
}];
[task resume];
Erste Frage - warum verwenden Sie eine ephemere Sitzung? Ich frage, weil es sehr wenige Gründe dafür gibt, sie jemals zu benutzen. – ArtSabintsev
Ich versuche die defaultSessionConfiguration, die NSURLProtocolSubclass hat auch nicht aufgerufen. – fyxrhyry
ah, sollte die Frage ausführlicher gelesen haben. Um ehrlich zu sein, ich habe nie mit NSURLProtocol gearbeitet, also glaube ich nicht, dass ich dabei helfen kann. Entschuldigen Sie. Die Verwendung des Protokolls erfordert jedoch nicht die Notwendigkeit einer ephemeren Sitzung. Nach meinem Wissen haben die beiden APIs nicht viel miteinander zu tun. Sie sollten einfach die defaultConfiguration verwenden können. – ArtSabintsev