# AFNetworking_Https
**Repository Path**: adiljan.git/AFNetworking_Https
## Basic Information
- **Project Name**: AFNetworking_Https
- **Description**: 实现 AFNetworking 支持 Https
- **Primary Language**: Objective-C
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2016-11-03
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 使用
### 一.证书准备
- 1.证书转换
在服务器人员,给你发送的crt证书后,进到证书路径,终端执行下面语句
openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der
这样你就可以得到cer类型的证书了。双击,导入电脑。
- 2.证书放入工程
证书直接拖到项目里面就可以
### 二. 代码修改
- 先在info.plist中,增加如下代码
```objective-c
NSAppTransportSecurity
NSAllowsArbitraryLoads
```
- 下载AFNetworking 导入到项目中
### 代码
```objective-c
#import
#import "AfNetworking.h"
```
```objective-c
-(void)getInfo{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// 2.申明返回的结果是text/html类型
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html",@"text/json",@"text/javascript", nil];
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
policy.allowInvalidCertificates = YES;
policy.validatesDomainName = YES;
// 证书的路径
// /先导入证书
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"mzl-server" ofType:@"cer"];//证书的路径
NSData *certData = [NSData dataWithContentsOfFile:cerPath];
manager.securityPolicy.pinnedCertificates = [[NSArray alloc] initWithObjects:certData, nil];
// 客户端是否信任非法证书
manager.securityPolicy.allowInvalidCertificates = YES;
// 是否在证书域字段中验证域名
[manager.securityPolicy setValidatesDomainName:NO];
// 3.设置超时时间为5s
manager.requestSerializer.timeoutInterval = 10;
[manager GET:@"https://202.100.177.31/ug/v1/city/list" parameters:nil success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"===============%@",responseObject);
// NSDictionary *dictData = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:nil];
// NSLog(@"===============%@",dictData);
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
NSLog(@"-------------失败");
}];
}
```