在iOS应用程序中需要对先前获得的证书请求进行签名。当我尝试运行查询时,捕获以下错误:
kCFURLErrorUserCancelledAuthentication -1012。
文档说:
kCFURLErrorUserCancelledAuthentication连接失败,原因是日志含义用户取消认证
实现如下:
- (void)startConnection {
NSString *serverURL = @"host.ru/method";
MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:serverURL customHeaderFields:nil];
MKNetworkOperation *op = [engine operationWithPath:nil params:nil httpMethod:@"GET" ssl:YES];
NSString *thePath = [[NSBundle mainBundle] pathForResource:@"client" ofType:@"p12"];
[op setShouldContinueWithInvalidCertificate:YES];
op.clientCertificate = thePath;
op.clientCertificatePassword = @"1234qwerty";
[op addCompletionHandler:^(MKNetworkOperation *operation) {
NSLog(@"[operation responseData]-->>%@", [operation responseString]);
}errorHandler:^(MKNetworkOperation *errorOp, NSError* err) {
NSLog(@"MKNetwork request error : %@", [err localizedDescription]);
}];
[engine enqueueOperation:op];
}
我做错了什么?
公立小学证书,它尝试签名请求已提前收到。它在浏览器中单独测试过,没有问题。
android应用程序对同一服务器的请求通常采用相同的方案。
当您的连接发送身份验证挑战请求时,可能会发生这种情况。
可能的原因是站点的证书无效/不受信任,而您选择不接受无效的证书。