recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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

  2. 贴上相关代码

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

  4. 贴上相关截图

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

phpcn_u1582phpcn_u15822758 Il y a quelques jours713

répondre à tous(2)je répondrai

  • 習慣沉默

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

    Cela n'a rien à voir avec AFNetworking. code=-1012 est le message d'erreur NSURLError fourni par le système. Il existe un tableau de comparaison http://blog.csdn.net/yesjava/article/details/8056681.
    NSURLErrorUserCancelledAuthentication = -1012. L'utilisateur annule la vérification.
    Vous connaîtrez la raison après la recherche.

    répondre
    0
  • 高洛峰

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

    1. Les serveurs DNS pour l'accès sans fil et l'accès cellulaire sont différents. En regardant le message d'erreur, le serveur auquel vous avez accédé a activé SSL et utilise un certificat auto-généré
    2.x. rencontré quelque chose de similaire. Problème, sous la version 3.x :
    Modification du code 2.1 :

    //使用默认的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 Rejoignez ATS :

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

    3. Exemple de code :

    //#自生成证书
    
    -(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);
                }];
    }

    répondre
    0
  • Annulerrépondre