本节使用ios的NSURLSessionDelegate代理来实现网络接口请求过程中携带证书发起请求。
NSURLAuthenticationMethodClientCertificate:客户端证书身份验证方法。客户端需要提供一个有效的数字证书以进行身份验证。
NSURLAuthenticationMethodServerTrust:服务器信任身份验证方法。客户端需要验证服务器的证书是否可信。
1.startWithParameters:method:方法用于启动网络请求。它接受一个参数字典和一个请求方法作为输入。根据请求方法的不同,构建GET或POST请求,并根据需要设置请求头和请求体。然后通过NSURLSession发送请求,并在请求完成后回调执行相应的处理逻辑。其中的CA_SSLURL是宏定义的地址,请求方法在第五小点的m文件中。
- (void)startWithParameters:(NSMutableDictionary *)parameters method:(RequestMethod)method{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration
delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURL *requestUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",CA_SSLURL,self.url]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:requestUrl];
if (method == RequestMethodGET) {
request.HTTPMethod = @"GET";
}else
{
request.HTTPMethod = @"POST";
[request setValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
// 设置请求参数
NSError *error;
NSData *requestData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:&error];
if (!error) {
[request setHTTPBody:requestData];
}
}
@weakify(self