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

  2. 贴上相关代码

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

  4. 贴上相关截图

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

phpcn_u1582
phpcn_u1582

membalas semua(2)
習慣沉默

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.

小葫芦

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);
            }];
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan