web-dev-qa-db-fra.com

Comment gérer "Échec de CFNetwork SSLHandshake" dans iOS

Parfois, je reçois CFNetwork SSLHandshake failed -(9806) dans mon code, mais je ne sais pas pourquoi cela se produit car mon code fonctionne correctement, sauf lorsque je l'exécute sous iOS 6, puis sur iOS 7 64 bits i. Obtenez cet avertissement.
Quelqu'un peut-il me suggérer comment gérer ce problème?

45
Arun_

Normalement, lorsque j’obtiens CFNetwork SSLHandshake failed -(*), c’est à cause de mon réseau wifi local (le périphérique est connecté au réseau mais ne pas l'Internet)

Essayez à nouveau sur un autre réseau (la 3G est la solution la plus rapide pour moi)

41
JoshK

Cela pourrait également se produire car iOS 9. iOS 9 et OSX 10.11 requièrent le protocole SSL TLSv1.2 pour tous les hôtes à partir desquels vous prévoyez de demander des données, à moins que vous ne spécifiiez des domaines d'exception dans le fichier Info.plist de votre application.

Vous pouvez trouver plus d'informations ici: https://developer.Apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

Ou la réponse de Steven Peterson ici, qui est très claire: https://stackoverflow.com/a/30720929/1485701

11
Antoine

Avait le même problème et après avoir confirmé que le serveur obtient le POST la solution était la suivante:

  • Nettoyer le projet: Produit -> Nettoyer
  • Supprimez votre application du périphérique iOS/simulateur iOS et quittez le simulateur.
  • Compilez votre application et lancez-la

Dans mon cas, c'est aussi simple que ça.

6
OhadM

J'ai eu le même problème, et dans mon cas la solution a été que dans mon code j'ai écrit

initWithScheme:@"https"

au lieu de

initWithScheme:@"http"

Alors, assurez-vous d'utiliser le bon protocole

2
user1015777