面试题答案
一键面试- 初始化AFHTTPSessionManager:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- 配置SSL/TLS相关设置:
- 设置请求超时时间:
manager.requestSerializer.timeoutInterval = 15.0f;
- 设置响应数据格式:
manager.responseSerializer = [AFJSONResponseSerializer serializer];
- 设置请求超时时间:
- 设置证书验证:
- 导入证书:将服务器证书(
.cer
格式)添加到项目中。 - 加载证书数据:
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"your_cert_name" ofType:@"cer"]; NSData *certData = [NSData dataWithContentsOfFile:cerPath];
- 创建证书策略:
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]; securityPolicy.pinnedCertificates = @[certData]; securityPolicy.allowInvalidCertificates = NO; securityPolicy.validatesDomainName = YES;
- 将证书策略应用到manager:
manager.securityPolicy = securityPolicy;
- 导入证书:将服务器证书(
- 发起网络请求:
- GET请求示例:
[manager GET:@"your_url" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { // 处理成功响应 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { // 处理失败响应 }];
- POST请求示例:
[manager POST:@"your_url" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { // 处理成功响应 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { // 处理失败响应 }];
- GET请求示例: