2016-02-28 65 views
0

我正在嘗試向我的服務器上的API發出HTTPS請求。我有自簽名證書。我的理解是,當http傳輸會遇到SSL信任問題時,下面的委託方法會被調用。NSUrlSessionDelagate質詢代理方法不叫

func URLSession(_ session: NSURLSession, 
didReceiveChallenge challenge: NSURLAuthenticationChallenge, 
    completionHandler completionHandler: (NSURLSessionAuthChallengeDisposition, 
           NSURLCredential?) -> Void) 

如果上述方法不存在於委託中,那麼將調用任務級挑戰函數。

由於某些原因,任何挑戰功能都沒有被調用。我可以在輸出中看到大量CFNetwork SSLHandshake失敗(-9801)錯誤。

我完全知道如何禁用ATS。但我目前的目標不是禁用自簽名證書。我有興趣在挑戰功能中處理它。

是否有什麼特殊的事情需要完成,以便在ssl信任問題發生時引發挑戰功能?是的,適當的委託被分配給NSUrlSession對象。

回答