From 811f61ce759a7577b601c1ab9fa3b4b625423209 Mon Sep 17 00:00:00 2001 From: Skandar Munir Date: Tue, 12 Aug 2025 18:51:28 +0300 Subject: [PATCH] fixes #28 --- .../URLProtocol/NetworkRedirectUrlProtocol.swift | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/NetworkInterceptor/Source/URLProtocol/NetworkRedirectUrlProtocol.swift b/NetworkInterceptor/Source/URLProtocol/NetworkRedirectUrlProtocol.swift index 72a5925..be47fce 100644 --- a/NetworkInterceptor/Source/URLProtocol/NetworkRedirectUrlProtocol.swift +++ b/NetworkInterceptor/Source/URLProtocol/NetworkRedirectUrlProtocol.swift @@ -12,6 +12,11 @@ class NetworkRedirectUrlProtocol: URLProtocol { var session: URLSession? var sessionTask: URLSessionTask? + private static var sharedSession: URLSession = { + let config = URLSessionConfiguration.default + config.protocolClasses = nil + return URLSession(configuration: config) + }() open override class func canInit(with request: URLRequest) -> Bool { if let httpHeaders = request.allHTTPHeaderFields, let refiredValue = httpHeaders["Redirected"], refiredValue == "true" { @@ -29,17 +34,14 @@ class NetworkRedirectUrlProtocol: URLProtocol { open override func startLoading() { guard var redirectedRequest = NetworkInterceptor.shared.redirectedRequest(urlRequest: self.request) else { - return + return } #if DEBUG NSLog("Redirected Request CURL => \(redirectedRequest.cURL)") #endif redirectedRequest.addValue("true", forHTTPHeaderField: "Redirected") - let config = URLSessionConfiguration.default - config.protocolClasses = [type(of: self)] - - session = URLSession(configuration: config, delegate: self, delegateQueue: nil) + session = NetworkRedirectUrlProtocol.sharedSession sessionTask = session?.dataTask(with: redirectedRequest, completionHandler: { [weak self] (data, response, error) in guard let strongSelf = self else { return }