Я пытался связаться со службой с помощью двустороннего SSL.
Я обнаружил, что соединение было отменено сразу после того, как клиент (часы) предоставил сертификат клиента, вызвав completeHandler(NSURLSessionAuthChallengeUseCredential, credential)
Полученная ошибка:
Код NSURLErrorDomain=-999 отменен
Но я попытался запустить тот же фрагмент кода на телефоне, и это удалось. Кроме того, другие запросы на часах работают нормально.
Поскольку фреймворки в WatchOS и iOS разные, мне интересно, может ли это быть проблемой для WatchOS? Или что-то конкретно нужно настроить для часов?
Вот код
- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler
{
NSURLProtectionSpace *protectionSpace = [challenge protectionSpace];
NSString *authMethod = [protectionSpace authenticationMethod];
if (authMethod == NSURLAuthenticationMethodServerTrust) {
completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:serverTrust]);
} else if (authMethod == NSURLAuthenticationMethodClientCertificate) {
// cancelled immediately after calling the method below.
completionHandler(NSURLSessionAuthChallengeUseCredential, self.credential);
} else {
completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, nil);
}
}