在 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];
}
我究竟做错了什么?
附言
已提前收到尝试签署请求的证书。在浏览器中单独测试,没问题。
一个应用程序对同一服务器的请求通常是相同的方案。