web-dev-qa-db-fra.com

(Erreur Cocoa 3840.) "(valeur non valide autour du caractère 0.) AFNetworking

J'ai reçu l'erreur suivante lors de l'utilisation de la méthode GET pour récupérer un fichier à partir d'un serveur:

Error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=0x16e81ed0 {NSDebugDescription=Invalid value around character 0.}

J'ai essayé un certain nombre de choses différentes et je pense que cela pourrait être lié au format JSON du fichier que j'essaie d'obtenir.

Voici le code que j'utilise:

_username = @"JonDoe";
NSDictionary *parameters = @{ @"username" : _username};
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];

[manager GET:@"http://.........."
  parameters:parameters
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"JSON: %@", responseObject);
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"Error: %@", error);
     }];

Ma méthode POST fonctionne bien. Je n'arrive pas à résoudre ce problème avec le GET. Des idées? Merci.

28
Jonathan

À en juger par la discussion dans les commentaires, il semble que votre demande GET a réussi (code de réponse 200), mais le corps de la réponse n'est pas un JSON valide (ni un fragment JSON) comme vous l'avez demandé en utilisant AFJSONResponseSerializer. Un AFHTTPResponseSerializer de base peut être utilisé pour les réponses qui ne sont pas JSON.

39
Brad Allred

Je suis à peu près sûr que vous avez une réponse valide du serveur, mais votre réponse n'est pas un format valide en JSON, probablement parce que vous avez des caracheurs devant le premier {. Veuillez essayer ceci: Mettez la même adresse URL manuellement dans votre navigateur et vous verrez le coupable dans la réponse. J'espère que cela a aidé.

3
Santi Pérez