Error Domain=NSURLErrorDomain Co

作者: _yun | 来源:发表于2017-08-03 12:45 被阅读197次

    Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo=0x168d9430 {NSErrorFailingURLStringKey=http://www.cndoa.com/server/service/get_shop_nearby.php, NSErrorFailingURLKey=http://www.cndoa.com/server/service/get_shop_nearby.php, NSLocalizedDescription=A server with the specified hostname could not be found., NSUnderlyingError=0x16840e10 "A server with the specified hostname could not be found.}

    当iPhone将wifi的DNS设置为114.114.114.114时, 每过1~2小时,在请求服务器时就会出现以上错误, 由于这个错误, 苹果连续拒绝了我们的App两次,这个问题是DNS的域名解析错误, 安卓访问都没问题, 但是iPhone总会报这个错误,我用的AFNetworking3.1(这个问题和什么网络请求是没关系的), 和服务端也没什么关系, 以我目前的了解,和前端的关系也不大, 只是前端可以做一些补救措施.目前, 我做了以下的处理,App本周已成功上线了. 当你遇到-1003错误时,改用ip再访问一下服务器
        AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
        session.requestSerializer = [AFJSONRequestSerializer serializer];
        session.responseSerializer = [AFHTTPResponseSerializer serializer];
        // 域名请求
        NSString *urlStr = @"https://github.com/user/12345678";
        [session GET:urlStr parameters:nil progress:^(NSProgress * _Nonnull uploadProgress) {
            // nil
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            // 域名请求成功, 处理数据
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            // 域名请求失败
            if (error.code == -1003) {
                // 找不到指定域名的主机, 通常为域名解析错误, 改为ip访问
                NSString *ipUrl = @"https://192.23.59.136/user/12345678";
                AFHTTPSessionManager *ipSession = [AFHTTPSessionManager manager];
                ipSession.requestSerializer = [AFJSONRequestSerializer serializer];
                ipSession.responseSerializer = [AFHTTPResponseSerializer serializer];
                [ipSession GET:ipUrl parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
                    //nil
                } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                    // ip请求成功, 处理数据
                } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                    // ip请求失败
                }];
            }
        }];
    

    总结: 遇到这个DNS的域名解析错误的问题时, 可以使用该方式绕过DNS的域名解析, 而直接使用ip访问,期待以后能有更加完善的解决方案, 能和大家多讨论,分享.

    相关文章

      网友评论

      • 86ad00ad1da7:你好,我需要大量的包,您这边可以帮我做吗?请联系我QQ1528627155

      本文标题:Error Domain=NSURLErrorDomain Co

      本文链接:https://www.haomeiwen.com/subject/rcqplxtx.html