[转]afnetworking、asihttprequest中ssl的使用 [ zhoutq ]

撰写于 2016-05-20
分类
iOS
/
AFNetworking


标签
iOS
/
AFNetworking
/
ASIHTTPRequest
/
SSL

原文:https://www.caijixia.net/jianzhanjingyan/2014080371676.html

首先介绍下AFNetworking中的使用:
2.0要注意个地方:IOS7及其以后,采用AFHTTPSessionManager,IOS7之前采用AFHTTPRequestOperationManager。
以AFHTTPSessionManager为例,代码如下:

1
AFHTTPSessionManager *httpClient = [AFHTTPSessionManager manager]; httpClient.requestSerializer = [AFHTTPRequestSerializer serializer]; httpClient.responseSerializer = [AFHTTPResponseSerializer serializer];

以AFHTTPRequestOperationManager为例,站群,代码如下:

1
2
3
4
5
6
7
8
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为例,代码如下:

1
2
3
4
5
6
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,代码就不贴了。