iOS之报错上架填坑iOS开发iOS学习笔记

Error Domain=NSURLErrorDomain Co

2017-08-03  本文已影响197人  _yun

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访问,期待以后能有更加完善的解决方案, 能和大家多讨论,分享.

上一篇下一篇

猜你喜欢

热点阅读