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];
}
私は何を間違っていますか?
PS
リクエストに署名しようとする証明書は、事前に受け取っています。ブラウザで個別にテストしましたが、大丈夫です。
同じサーバー リクエストに対する android のアプリケーションは、通常、同じスキームです。