开发者社区 问答 正文

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

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

展开
收起
EMAS支持组 2022-09-20 15:48:37 938 发布于辽宁 分享
分享
版权
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等