1

我正在使用自定義協議,其中我使用defaultConfiguration創建NSURLSession。這裏是我的代碼 -HTTPMaximumConnectionsPerHost,timeoutIntervalForRequest在iOS自定義協議中使用時不影響defaultSession

` 
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; 

config.timeoutIntervalForRequest = 10.0; 
config.timeoutIntervalForResource = 10.0; 
config.HTTPMaximumConnectionsPerHost = 2; 
config.connectionProxyDictionary = proxyToUse; 

[NSURLProtocol setProperty:@YES forKey:@"MyURLProtocolHandledKey" inRequest:mReq]; 

if(!_mySession) { 
    _mySession = [NSURLSession sessionWithConfiguration:config 
           delegate:self 
         delegateQueue:nil]; 
} 

`

當App正在數以百計的要求,有逐漸增加的響應時間,服務從自定義協議的請求。我可以看到60秒的最大超時時間。這些配置參數沒有影響。

+0

沒有看到你的代碼的其餘部分,這很難說,但你...你確定這些請求並非所有進入單獨的會話?另外,請記住,如果您一次只限制兩個活動連接,則響應時間的逐漸增加正是您所期望的。其他請求將排隊等待發送的機會。 – dgatwood

回答

0

某些URLSessionConfiguration屬性應該在配置用於創建新的URLSession之前設置。例如,要建立一個timeoutIntervalForRequest你必須做到以下幾點:

let configuration = URLSessionConfiguration.default 
configuration.timeoutIntervalForRequest = 2 
let session = URLSession(configuration: configuration)