您好,登錄后才能下訂單哦!
當使用NSURLSession進行網絡請求時,可以通過實現NSURLSessionDelegate協議中的方法來處理身份驗證挑戰。以下是處理身份驗證挑戰的步驟:
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
// 處理身份驗證挑戰
if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust {
// 如果是服務器信任的證書
let credential = URLCredential(trust: challenge.protectionSpace.serverTrust!)
completionHandler(.useCredential, credential)
} else if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodHTTPBasic {
// 如果是基本認證
let credential = URLCredential(user: "username", password: "password", persistence: .forSession)
completionHandler(.useCredential, credential)
} else {
// 其他情況,取消請求
completionHandler(.cancelAuthenticationChallenge, nil)
}
}
let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil)
通過以上步驟,可以在收到身份驗證挑戰時根據不同的驗證方式進行處理,例如信任服務器證書、使用用戶名和密碼進行基本認證等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。