1. 使用自簽名證書,https請求時,發(fā)現(xiàn)SSL 花樣報錯
swift語言中
1.1 第三方網(wǎng)絡(luò)請求:Alamofire
1.1.1 自定義EKWSessionManager繼承于SessionManager,在Debug模式下添加需要添加信任的host, 如:m.itdecent.cn, www.baidu.com
import UIKit
import Alamofire
class EKWSessionManager: SessionManager {
open static let defaultManager: SessionManager = {
#if DEBUG
let configuration = URLSessionConfiguration.default
//設(shè)置需要信任的host
let serverTrustPolicies: [String : ServerTrustPolicy] = ["www.baidu.com": .disableEvaluation, "m.itdecent.cn": .disableEvaluation]
let sessionManager = SessionManager.init(configuration: configuration, serverTrustPolicyManager: ServerTrustPolicyManager.init(policies: serverTrustPolicies))
#else
let sessionManager = SessionManager.default
#endif
return sessionManager
}()
}
1.1.2 接下來的網(wǎng)絡(luò)請求都是基于EKWSessionManager. defaultManager
let sessionManager = EKWSessionManager.defaultManager
let dataRequest = sessionManager.request(url,
method: method,
parameters: paramenters,
encoding: URLEncoding.default,
headers: nil)
1.2 第三方圖片加載:Kingfisher
在Debug模式下添加需要添加信任的host, 如:m.itdecent.cn, www.baidu.com
class func serverTrustPolicy(){
#if DEBUG
let downloader = KingfisherManager.shared.downloader
downloader.trustedHosts = ["m.itdecent.cn", "www.baidu.com"]
#else
#endif
}
OC語言中
1.3 使用OC語言,在Debug模式下添加繞過證書驗證的方法
#ifdef DEBUG
@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end
#endif