Je vois qu'il existe une liste de codes d'état http acceptés que je peux modifier, mais je pense que ce serait plus propre si je pouvais obtenir le code d'état http dans le bloc d'échec.
Ok, j'ai trouvé la réponse avec l'objet opération
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"error code %d",[operation.response statusCode]);
}];
afnetworking
SingeBonkey
la source
la source
[operation.request HTTPMethod]
Dans les versions plus récentes d'AFNetworking, vous pouvez récupérer l'objet de réponse de l'erreur:
Ceci est pratique si vous effectuez une gestion des erreurs plus haut dans la ligne et que vous ne voulez pas passer autour de l'objet de réponse.
la source
NSError *underlyingError = error.userInfo[@"NSUnderlyingError"]
Pour AFNetworking 3.0 , utilisez
la source
Si les demandes ont été annulées / inaccessibles / expirées, le
httpStatusCode
sera toujours0
.Vous pouvez également identifier le problème en comprenant le
operationStatusCode
. C'est unNSError
objet.operationStatusCode
sera-1009
.operationStatusCode
sera-999
.Vous pouvez vérifier tous les autres
NSError
codes et leurs descriptions dans la documentation Applela source
J'ai pu obtenir le code d'état avec Swift 3:
la source
Ça marche pour moi Ajouter la ligne ci-dessous à votre demande
manager.requestSerializer = [sérialiseur AFJSONRequestSerializer];
la source