6
セキュリティウォールの背後にあるセキュアなURLから画像をダウンロードします。 URLのようにhttps://foo.com/bar.pngNSURLSessionが断続的にSSLHandshakeを取得できませんでした(-9810)。エラー
時々私はSSLHandshakeエラーが発生しています。エラーが一度発生することがありますが、エラーが一定で、ファイルをダウンロードできないことがあります。
DownloadImageApp[2914] <Warning>: CHALLENGE!!! (NSURLAuthenticationMethodServerTrust)
DownloadImageApp[2914] <Warning>: server = foo.com
DownloadImageApp[2914] <Warning>: CFNetwork SSLHandshake failed (-9810)
DownloadImageApp[2914] <Warning>: CHALLENGE!!! (NSURLAuthenticationMethodServerTrust)
DownloadImageApp[2914] <Warning>: server = foo.com
DownloadImageApp[2914] <Warning>: CHALLENGE!!! (NSURLAuthenticationMethodNTLM)
DownloadImageApp[2914] <Warning>: NSURLAuthenticationMethodNTLM
は、私はそれが完全に失敗した場合でも挑戦
- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler {
NSLog(@"CHALLENGE!!! (%@)", challenge.protectionSpace.authenticationMethod);
if (challenge.error)
NSLog(@" -- error: %@", challenge.error.description);
if (challenge.previousFailureCount > 0)
NSLog(@" -- previous failure count = %d", challenge.previousFailureCount);
if (challenge.proposedCredential)
NSLog(@" -- proposed credential user: %@", challenge.proposedCredential.user);
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
NSLog(@" server = %@", challenge.protectionSpace.host);
completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
} else if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodNTLM]) {
NSLog(@" NSURLAuthenticationMethodNTLM");
NSURLCredential *credential = [NSURLCredential credentialWithUser:@"username" password:@"passwordIsSecretShhh" persistence:NSURLCredentialPersistenceForSession];
completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
} else {
NSLog(@" ????");
}
}
を処理するために、次のコードを使用して、私はまだサファリ、URLを入力する以上開くことができますロードし、それをロードしていません。だから私は悪いネットワークの問題や、Webサーバーをホスティングしている不自然な問題以外のこの問題を引き起こすアイデアを探しています。
このハンドシェイクエラーの解決策はありますか? – Ekra
Nope。物事ではありません。再試行して正常に動作することがありますが、3回連続して失敗し、結果が完全に接続できないことがあります。 – DBD