2013-11-27 4 views
12

Я пытаюсь вызвать мой URL, используяПолучение CFNetwork SSLHandshake не удалось (-9806) ошибка

NSDictionary *landingDetails=[appDelegate landingPage]; 

     NSString *devinf=[UIDevice currentDevice].systemVersion; 
     NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 

     NSMutableDictionary *reqDict=[NSMutableDictionary dictionary]; 
     [reqDict setObject:@"refillByScan" forKey:@"appId"]; 
     [reqDict setObject:@"extest1" forKey:@"affId"]; 
     [reqDict setObject:[landingDetails objectForKey:@"token"] forKey:@"token"]; 
     [reqDict setObject:@"0124400-59382" forKey:@"rxNo"];//medication or prescription id 
     [reqDict setObject:@"appName://handleControlFromScanRefill" forKey:@"appCallBackScheme"]; 
     [reqDict setObject:@"callBackAction" forKey:@"appCallBackAction"]; 
     [reqDict setObject:@"chkExpRx" forKey:@"act"]; 
     [reqDict setObject:@"" forKey:@"trackingId"]; 
     [reqDict setObject:devinf forKey:@"devinf"]; 
     [reqDict setObject:appVersion forKey:@"appver"]; 

     NSString *landingUrl=[landingDetails objectForKey:@"landingUrl"];//my url 
     request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:landingUrl]]; 
     NSString *jsonRequest = [reqDict JSONRepresentation]; 
     NSLog(@"jsonRequest is %@", jsonRequest); 
     NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]]; 

     [request setHTTPMethod:@"POST"]; 
     [request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"]; 
     [request setHTTPBody: requestData]; 

     con=[[NSURLConnection alloc]initWithRequest:request delegate:self]; 
     [con start]; 

я получаю эту ошибку в моем журнале

2013-11-27 19:43:30.754 WallGreen[5594:3a03] CFNetwork SSLHandshake failed (-9806) 
2013-11-27 19:43:31.273 WallGreen[5594:3a03] CFNetwork SSLHandshake failed (-9806) 
2013-11-27 19:43:31.799 WallGreen[5594:3a03] CFNetwork SSLHandshake failed (-9806) 
2013-11-27 19:43:31.800 WallGreen[5594:3a03] NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9806) 
+0

Является ли сертификат SSL/TLS URL-адреса самоподписанным или подписанным центром сертификации, указанным в системной брелка? OpenSSL включает превосходный инструмент s_client для отладки таких проблем: http://www.openssl.org/docs/apps/s_client.html –

+0

Я считаю, что его сертификат ssl/tls –

+1

http://stackoverflow.com/questions/19922717/how-to-handle-cfnetwork-sslhandshake-failed-in-ios –

ответ

5

FWIW: Я получил тот же номер ошибки и это было связано с сертификатом с истекшим сроком действия, так что это еще один потенциальный источник проблемы.

+4

Это не дает ответа на вопрос вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – Stonz2

+1

Я не уверен, что полностью понимаю этот комментарий. Вы говорите, что «это может быть связано с сертификатом с истекшим сроком действия», это не ответ, потому что он не на 100% определен? Или что ему нужны подробности о том, как сгенерировать новый сертификат, если проблема с истекшим сроком действия действительно является проблемой (детали, которые будут зависеть от выдающего ЦС)? Любые детали, которые вы можете предложить о конкретных недостатках в моем ответе, будут оценены. – Arkaaito

+0

У меня есть эта ошибка с недопустимым сертификатом (имя хоста в сертификате не совпало). –

1

Ошибка при работе с iOS 8 при использовании сертификата с хэш-функцией SHA512, лучше использовать SHA256. Я застрял с этой ошибкой в ​​течение нескольких недель.

1

Обычно, когда я CFNetwork SSLHandshake не удалось - (*) его из-за моей локальной сети Wi-Fi (устройство подключено к сети, но не интернет)

Попробуйте еще раз в другой сети (3G является самым быстрым решением для me)

Смежные вопросы