开发者社区> 问答> 正文

使用HTTPDNS的IOS SDK时出现“Error Domain=NSURLErrorDomain

使用HTTPDNS的IOS SDK时出现“Error Domain=NSURLErrorDomain Code=-1202”报错

展开
收起
EMAS支持组 2022-09-20 15:48:37 898 0
1 条回答
写回答
取消 提交回答
  • 参见HTTPS(含SNI)业务场景“IP直连”方案说明,对证书校验步骤的内容进行修改,具体内容参考如下。

    Objective-C
    - (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
                      forDomain:(NSString *)domain {
        serverTrust = AFChangeHostForTrust(serverTrust,domain);
        /*
         * 创建证书校验策略
         */
        NSMutableArray *policies = [NSMutableArray array];
        if (domain) {
            [policies addObject:(__bridge_transfer id) SecPolicyCreateSSL(true, (__bridge CFStringRef) domain)];
        } else {
            [policies addObject:(__bridge_transfer id) SecPolicyCreateBasicX509()];
        }
        /*
         * 绑定校验策略到服务端的证书上
         */
        SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef) policies);
        /*
         * 评估当前serverTrust是否可信任,
         * 官方建议在result = kSecTrustResultUnspecified 或 kSecTrustResultProceed
         * 的情况下serverTrust可以被验证通过,https://developer.apple.com/library/ios/technotes/tn2232/_index.html
         * 关于SecTrustResultType的详细信息请参考SecTrust.h
         */
        SecTrustResultType result;
        SecTrustEvaluate(serverTrust, &result);
        if (result == kSecTrustResultRecoverableTrustFailure) {
            CFDataRef errDataRef = SecTrustCopyExceptions(serverTrust);
            SecTrustSetExceptions(serverTrust, errDataRef);
            SecTrustEvaluate(serverTrust, &result);
        }
        return (result == kSecTrustResultUnspecified || result == kSecTrustResultProceed);
    }
    

    其中,添加了以下内容。

    
    Objective-C
    if (result == kSecTrustResultRecoverableTrustFailure)
        {
            CFDataRef errDataRef = SecTrustCopyExceptions(serverTrust);
            SecTrustSetExceptions(serverTrust, errDataRef);
            SecTrustEvaluate(serverTrust, &trustResult);
        }
    

    更多官方信息

    EMAS官网介绍:https://www.aliyun.com/product/emas

    Devops:https://www.aliyun.com/product/emascrash/mobile_devops

    移动热修复:https://www.aliyun.com/product/hotfix

    移动测试:https://www.aliyun.com/activity/emas/mqcexpert

    移动推送:https://www.aliyun.com/product/cps

    HTTPDNS:https://www.aliyun.com/product/httpdns

    EMAS 控制台: https://emas.console.aliyun.com/products

    2022-09-20 16:02:59
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载