MST

星途 面试题库

面试题:Objective-C中实现SSL/TLS加密通信的基础步骤

在Objective-C网络编程中,简述实现SSL/TLS加密通信的基本步骤,包括初始化相关配置、设置证书验证等方面。
38.5万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. 初始化AFHTTPSessionManager
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    
  2. 配置SSL/TLS相关设置
    • 设置请求超时时间
      manager.requestSerializer.timeoutInterval = 15.0f;
      
    • 设置响应数据格式
      manager.responseSerializer = [AFJSONResponseSerializer serializer];
      
  3. 设置证书验证
    • 导入证书:将服务器证书(.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;
      
  4. 发起网络请求
    • 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) {
          // 处理失败响应
      }];