2

在 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];   
}

我究竟做错了什么?

附言

已提前收到尝试签署请求的证书。在浏览器中单独测试,没问题。

一个应用程序对同一服务器的请求通常是相同的方案。

4

1 回答 1

2

当您的连接发送身份验证质询请求时,可能会发生这种情况。

一个可能的原因是该站点的证书无效/不受信任,并且您选择不接受无效证书。

于 2015-02-13T00:02:30.583 回答