Code d'erreur -1011 lorsque j'utilise AFNetWorking
Je suis en train de faire un service à la clientèle de notre entreprise. Et j'ai essayer d'obtenir quelques informations à partir de leur serveur par AFNetWorking (Notre client encourager à utiliser AFNetWorking)
J'ai fait quelques échantillon à l'aide de AFNetWorking, et c'est le travail.
Mais quand j'utilise l'un de nos clients Url pour les données JSON, il n'a pas et c'est la description de l'erreur:
Error Domain=com.alamofire.networking.error Code=-1011
"Expected status code <NSIndexSet: 0x7e274f0>[number of indexes: 100 (in 1 ranges),
indexes: (200-299)], got 403" UserInfo=0x7b64040 {NSErrorFailingURLKey=<url_hidden_for_stackoverflow>,
NSLocalizedDescription=Expected status code <NSIndexSet: 0x7e274f0>[number of indexes: 100 (in 1 ranges), indexes: (200-299)], got 403}
J'ai essayer de trouver une solution, mais je ne peux pas fixer encore. Il y a mon code:
NSURL *url = [NSURL URLWithString:@"http://example.com/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
//[httpClient setDefaultHeader:@"Accept" value:@"text/json"];
//NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:CONST_KEY_REGISTER_UNIQUE_KEY, CONST_API_KEY_TEXT,nil];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"path/to/page.json" parameters:nil];
[httpClient release];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSString *status = [JSON valueForKey:@"status"];
if ([status isEqualToString:@"OK"]) {
NSString *uniqueId = [JSON valueForKey:@"uniqueId"];
[UserSettings setWithKey:CONST_PROGRAM_UNIQUE_KEY value:uniqueId];
}
//NSString *message = [json valueForKey:@"message"];
//NSString *error = [json valueForKey:@"error"];
[[LoadingView instance] performSelectorOnMainThread:@selector(removeLoadingView) withObject:nil waitUntilDone:YES];
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSString *errorString = [error description];
[[LoadingView instance] performSelectorOnMainThread:@selector(removeLoadingView) withObject:nil waitUntilDone:YES];
}];
NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation:operation];
Merci pour la lecture, et toute aide ou une réponse sera grandement apprécié.
EDIT: Comme DarkDust dit: serveur de refuser mon accès. Mais je peut recevoir les données du serveur de base de la connexion:
Voici le code pour obtenir:
NSURL *url = [NSURL URLWithString:@"http://example.com/path/to/page.json"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:CONST_CONNECTION_TIMEOUT];
rssConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
[self performSelectorOnMainThread:@selector(downloadStarted) withObject:nil waitUntilDone:NO];
if (rssConnection != nil) {
do {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
} while (!done);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
//I can get text here, but it is not JSON format
NSString *content = [NSString stringWithUTF8String:[data bytes]];
}
Je me demande pourquoi rssConnection pouvez obtenir JSON texte et AFHTTPClient ne peut pas ?
C'est juste une page de test, pas de page privée. Il n'y aura plus de changement avant que je puisse terminer. Et l'avenir, il y aura besoin de la clé API d'accès, et bien sûr, je le cacher
Pourtant, tout le monde peut voir qui sont vos clients. Votre client peut ne pas être très heureux à ce sujet.
OriginalL'auteur magichero | 2011-11-03
Vous devez vous connecter pour publier un commentaire.
Le serveur répond avec le code d'erreur HTTP 403 qui signifie Interdit. Il vous refuse l'accès. Vous avez besoin de savoir pourquoi, par exemple par la lecture des journaux du serveur (si vous pouvez) ou de demander à l'administrateur du serveur pour vous aider. Il peut être restrictions d'accès sur le serveur qui doivent être levées/modifié.
Modifier: HTTP
POST
est une opération qui veut sauver quelque chose sur le serveur. Alors que la normaleGET
semble très bien fonctionner selon votre édité question, l'épargne est interdit maintenant. Première chose à faire est de toujours examiner la configuration du serveur. En outre, si votre URL pointe vers un script (JSP, ASP, peu importe) qui est la seule chose qui aurait du sens dans votre cas, vous avez besoin d'examiner afin de déterminer pourquoi il vous refuse l'accès (si la configuration du serveur n'est pas déjà le nier, il doit être le script).Expected status code ..., got 403
. Le serveur est de vous interdire l'accès.J'ai éditer mon post, parce que Si j'ajoute un commentaire, je ne peux pas vous dire clairement ce que j'en ai besoin.
Mise à jour de ma réponse.
Merci pour votre aide. Ma question est fermée. Notre client utiliser ce serveur pour tester et me donner mauvaise configuration. Je peux me connecter au serveur de test par la méthode "GET". La page de test est juste text/plain et pas format JSON.
OriginalL'auteur DarkDust
Comme référence en raison de la forte résultat de la recherche via google...
Pour les autres qui sont à la recherche pour les codes d'erreur possibles récupéré via AFNetworking, consultez la documentation d'apple pour URL de Chargement des Codes d'Erreur du Système que ce sont les mêmes.
NSURLErrorBadServerResponse = -1011
Retourné lorsque l'URL de Chargement système reçoit de mauvaises données à partir du serveur.
C'est l'équivalent de la “500 Server Error” message envoyé par les serveurs HTTP.
OriginalL'auteur NSMutableString