Tôi có lớp NSURLProtocol tùy chỉnh để cung cấp dữ liệu thử nghiệm trong khi đang thử nghiệm với Alamofire, nhưng dường như nó không được sử dụng khi thực hiện yêu cầu thông qua phương thức yêu cầu Manager .phương thức canInitWithRequest trong lớp NSURLProtocol tùy chỉnh không được kích hoạt khi sử dụng Alamofire
Yêu cầu này đi qua và trả về một kết quả tốt, nhưng không kích hoạt 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)
Nếu tôi sử dụng một NSURLConnection đơn giản, phương pháp canInitWithRequest được gọi như tôi mong đợi:
NSURLProtocol.registerClass(DBDummyURLProtocol)
var request = NSURLRequest(URL: NSURL(scheme: "http", host: "cnn.com", path: "/")!)
NSURLConnection(request: request, delegate:nil, startImmediately:true)
Tôi có làm gì sai không? Điều này có phù hợp với Alamofire không?
Worth làm rõ rằng 'NSURLSession.shared' không hoàn toàn tôn trọng các lớp giao thức registered sử dụng' registerClass (_ :) ' tuy nhiên, các phiên được tạo bằng cách sử dụng bất kỳ phương thức khởi tạo nào (tức là không phải phiên chia sẻ) thì không. Sau đó là những gì Alamofire sử dụng, và đó là lý do tại sao nó bỏ qua 'registerClass (_ :)'. – paulvs