Ich sehe, dass es eine Liste akzeptierter http-Statuscodes gibt, die ich ändern kann, aber ich denke, es wäre sauberer, wenn ich den http-Statuscode im Fehlerblock erhalten könnte.
Ok, habe die Antwort mit dem Operationsobjekt gefunden
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"error code %d",[operation.response statusCode]);
}];
afnetworking
MonkeyBonkey
quelle
quelle
[operation.request HTTPMethod]
In neueren Versionen von AFNetworking können Sie das Antwortobjekt aus dem Fehler abrufen:
Dies ist praktisch, wenn Sie die Fehlerbehandlung weiter oben durchführen und das Antwortobjekt nicht weitergeben möchten.
quelle
NSError *underlyingError = error.userInfo[@"NSUnderlyingError"]
Für AFNetworking 3.0 , Verwendung
quelle
Wenn die Anfragen storniert / nicht erreichbar / Timeout waren,
httpStatusCode
wird immer sein0
.Alternativ können Sie das Problem identifizieren, indem Sie die
operationStatusCode
. Es ist einNSError
Objekt.operationStatusCode
wird dies der Fall sein-1009
.operationStatusCode
wird dies der Fall sein-999
.Sie können alle anderen
NSError
Codes und ihre Beschreibungen in der Apple-Dokumentation überprüfenquelle
Ich konnte den Statuscode mit Swift 3 erhalten:
quelle
Es ist Arbeit für mich Fügen Sie Ihrer Anfrage die folgende Zeile hinzu
manager.requestSerializer = [AFJSONRequestSerializer serializer];
quelle