cari

Rumah  >  Soal Jawab  >  teks badan

objective-c - AFNetworking 无线访问正常 蜂窝数据访问出错

  1. 描述你的问题
    AFNetworking 无线访问正常 蜂窝数据访问出错 报 -1012

  2. 贴上相关代码

  3. 贴上报错信息
    Error Domain=NSURLErrorDomain Code=-1012 "未能完成操作。(“NSURLErrorDomain”错误 -1012。)" UserInfo=0x175d6c00

  4. 贴上相关截图

  1. 已经尝试过哪些方法仍然没解决(附上相关链接)

phpcn_u1582phpcn_u15822839 hari yang lalu777

membalas semua(2)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-02 09:23:36

    Ini tiada kaitan dengan AFNetworking kod=-1012 ialah mesej ralat NSURLError yang disediakan oleh sistem. Terdapat jadual perbandingan http://blog.csdn.net/yesjava/article/details/8056681.
    NSURLErrorUserCancelledAuthentication = -1012. Pengguna membatalkan pengesahan.
    Anda akan tahu sebabnya selepas mencari.

    balas
    0
  • 高洛峰

    高洛峰2017-05-02 09:23:36

    1. Pelayan DNS untuk akses wayarles dan akses selular adalah berbeza. Melihat kepada mesej ralat, pelayan yang anda akses telah mendayakan SSL dan menggunakan sijil yang dijana sendiri 2.x menghadapi masalah yang serupa, di bawah versi 3.x:
    2.1 pengubahsuaian kod:

    //使用默认的security policy, 注释掉类似代码:
    //sessionMgr.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
    //以下和AFNetworking 2.x相同
    sessionMgr.securityPolicy.allowInvalidCertificates = YES;
    //以下是AFNetworking 3.x 下需要的
    sessionMgr.securityPolicy.validatesDomainName = NO;

    2.2 Info.plist Sertai ATS:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

    3. Contoh kod:

    //#自生成证书
    
    -(IBAction)clickOnSSLWithJSON:(id)sender {
        NSLog(@"ssl with json");
        
        NSURL *url = [NSURL URLWithString:@"https://192.168.1.6:3000"];
        AFHTTPSessionManager *sessionMgr=[[AFHTTPSessionManager alloc]initWithBaseURL:url];
        sessionMgr.responseSerializer = [AFHTTPResponseSerializer serializer];
     
        sessionMgr.responseSerializer.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"text/html",nil];
        //in this case, Info.plist should be added with keys 'NSAppTransportPolicy' and 'NSAllowsArbitraryLoads',
        //and security policy  should be used with default.
        //following setting is same as AFNetworking 2.x
        sessionMgr.securityPolicy.allowInvalidCertificates = YES;
        //following setting is specified for AFNetworking 3.x
        sessionMgr.securityPolicy.validatesDomainName = NO;
        [sessionMgr GET:@"" parameters:nil progress:nil
                success: ^(NSURLSessionDataTask * _Nonnull task, id _Nullable result){
                    //NSUTF8StringEncoding should be encoded for response data.
                    NSLog(@"ok:\n%@",[[NSString alloc]initWithData:result encoding:NSUTF8StringEncoding]);
                }
                failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)
                {
                    NSLog(@"error:\n%@",error);
                }];
    }

    balas
    0
  • Batalbalas