AFNetworking、ASIHTTPRequest中SSL的使用

发布时间:2017-09-09 10:44:25
AFNetworking、ASIHTTPRequest中SSL的使用

首先介绍下AFNetworking中的使用:

2.0要注意个地方:IOS7及其以后,采用AFHTTPSessionManager,IOS7之前采用AFHTTPRequestOperationManager。

以AFHTTPSessionManager为例,代码如下:

AFHTTPSessionManager *httpClient = [AFHTTPSessionManager manager]; httpClient.requestSerializer = [AFHTTPRequestSerializer serializer]; httpClient.responseSerializer = [AFHTTPResponseSerializer serializer]; // SSL Pinning NSString *certificatePath = [[NSBundle mainBundle] pathForResource:@certificate ofType:@der]; NSData *certificateData = [NSData dataWithContentsOfFile:certificatePath]; AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init]; [securityPolicy setAllowInvalidCertificates:YES]; [securityPolicy setPinnedCertificates:@[certificateData]]; [securityPolicy setSSLPinningMode:AFSSLPinningModeCertificate]; [httpClient setSecurityPolicy:securityPolicy]; [httpClient GET:@http://xxxx parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { } failure:^(NSURLSessionDataTask *task, NSError *error) { //失败信息 }];
以AFHTTPRequestOperationManager为例,站群,代码如下:
AFHTTPRequestOperationManager *httpClient1 = [AFHTTPRequestOperationManager manager]; httpClient1.requestSerializer = [AFHTTPRequestSerializer serializer]; httpClient1.responseSerializer = [AFHTTPResponseSerializer serializer]; // SSL Pinning NSString *certificatePath1 = [[NSBundle mainBundle] pathForResource:@certificate ofType:@der]; NSData *certificateData1 = [NSData dataWithContentsOfFile:certificatePath1]; AFSecurityPolicy *securityPolicy1 = [[AFSecurityPolicy alloc] init]; [securityPolicy1 setAllowInvalidCertificates:YES]; [securityPolicy1 setPinnedCertificates:@[certificateData1]]; [securityPolicy1 setSSLPinningMode:AFSSLPinningModeCertificate]; [httpClient setSecurityPolicy:securityPolicy1]; [httpClient1 GET:@http://xxxx parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { //成功信息 } failure:^(AFHTTPRequestOperation *operation, NSError *error) { //失败信息 }];

下面来讲下ASI,

以ASIFormDataRequest为例,代码如下:

ASIFormDataRequest * request; request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@]]; NSData *cerFile = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@d1 ofType:@cer]]; SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)cerFile); NSArray *array = [NSArray arrayWithObjects:(__bridge id)cert,nil]; [request setClientCertificates:array]; [request setValidatesSecureCertificate:NO]; [request startSynchronous];


ASIHTTPRequest的参考http://www.tuicool.com/articles/UN3AveR,代码就不贴了。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:潜江网站建设 http://qianjiang.45qun.com


独家出品

新闻由机器选取每5分钟自动更新

新闻搜索源于互联网新闻网站和频道,系自动分类排列,本站不刊登或转载任何完整的新闻内容