objective-c - AFNetworking 无线访问正常 蜂窝数据访问出错
phpcn_u1582
phpcn_u1582 2017-05-02 09:21:36
0
2
823
  1. 描述你的问题
    AFNetworking 无线访问正常 蜂窝数据访问出错 报 -1012

  2. 贴上相关代码

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

  4. 贴上相关截图

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

phpcn_u1582
phpcn_u1582

répondre à tous(2)
習慣沉默

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.

小葫芦

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);
            }];
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal