web-dev-qa-db-fra.com

NSCocoaErrorDomain Code = 256

Cela fait un moment que je suis coincé avec ça et ne semble pas le contourner.

J'essaie de lire le contenu d'une URL sous forme de chaîne à partir d'une URL, mais je reçois une erreur

Erreur -> Domaine d'erreur = Code NSCocoaErrorDomain = 256 "L'opération n'a pas pu être terminée. (Erreur cacao 256.)"

Mon code:

fetchedString = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"www.example.com/iphone"] encoding:NSUTF8StringEncoding error:&error];                                     
    NSLog(@"%@",fetchedString);

    // if there is something wrong with the URL 
    if (error) {
        NSLog(@"Error -> %@", error);
        return ;
    }

Qu'est-ce que je fais mal? J'ai également essayé de recevoir NSData, mais je suis nul.

17
Neelesh

Oui, l'URL manque le schéma: "http: //".

"Erreur -> Domaine d'erreur = Code NSCocoaErrorDomain = 256"

Pour le code d'erreur, consultez le Documentation Apple :

Codes NSError dans le domaine d'erreur Cocoa.

NSFileReadUnknownError = 256,

NSFileReadUnknownError
"Erreur de lecture, raison inconnue"

Non que la définition de l'erreur soit très utile. :-)

Ne vérifiez pas non plus si error est nil pour déterminer s'il y a une erreur, vérifiez la valeur de retour pour nil. error n'est pas garanti d'être nil en cas d'exécution réussie.

15
zaph

J'ai eu un problème similaire lors de l'accès aux fichiers situés sur mon appareil. J'ai suivi NSURL isFileURL renvoie toujours NO et a utilisé [NSURL fileURLWithPath] au lieu de [NSURL URLWithString] - cela a fonctionné!

8
user3000868

Bac à sable

Si vous utilisez le sandboxing dans votre application, vous pouvez vérifier quecom.Apple.security.network.clientest défini surYES. C'est dans le Général onglet de votre cible dans Xcode 5 sous

Réseau: connexions sortantes (client)

Sachez également que si vous rencontrez un code 257 lorsque vous essayez d’atteindre une URL file:///, c’est probablement aussi à cause du sandboxing, mais cette fois-ci plutôt de la partie Accès au fichier. Parce que je ne voulais pas l'ouvrir à autre chose que «com.Apple.security.files.user-selected.read-write»

Fichiers sélectionnés par l'utilisateur

J'ai préféré utiliser Un Dead Simple Fileserver et utiliser http://localhost:3000 en mode débogage.

3
StuFF mc

J'ai eu cette erreur (Domaine d'erreur = Code NSCocoaErrorDomain = 256) dès que notre certificat SSL a expiré. cela ne vous aidera peut-être pas mais pourrait aider quelqu'un d'autre.

2
James

Plus de raisons pouvant être à l'origine de cette erreur spécifique:

  1. SSL est mal configuré sur le serveur
  2. Le serveur redirige (301) l'URL http vers https (voir n ° 1)
  3. La sécurité du transport d'applications utilise également ce code pour les demandes bloquées.
2
nschum

J'ai eu la même erreur, la solution ci-dessus n'a pas fonctionné pour moi, dans mon cas, j'appelais dataWithContentsOfURL depuis un UNNotificationServiceExtension donc j'ai dû mettre à jour le fichier info.plist du UNNotificationServiceExtension avec les entrées de sécurité de transport d'application.

J'ai eu la même erreur. La réponse marquée ci-dessus est parfaite. Mais dans mon cas, j'avais le "http: //" dans l'URL, mais je devais ajouter le numéro de port dans la demande d'URL, car un service fonctionnant sur un port spécifique répond actuellement à votre demande. @"http://example.com:8084/yyy.zzz"

0
Aragorn