Widzę, że istnieje lista akceptowanych kodów statusu http, które mogę zmodyfikować, ale myślę, że byłoby czystsze, gdybym mógł uzyskać kod statusu http w bloku błędu.
Ok, znalazłem odpowiedź z obiektem operacji
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"error code %d",[operation.response statusCode]);
}];
afnetworking
MonkeyBonkey
źródło
źródło
[operation.request HTTPMethod]
W nowszych wersjach AFNetworking można pobrać obiekt odpowiedzi z błędu:
Jest to przydatne, jeśli wykonujesz obsługę błędów w dalszej części wiersza i nie chcesz przekazywać obiektu odpowiedzi.
źródło
NSError *underlyingError = error.userInfo[@"NSUnderlyingError"]
W przypadku AFNetworking 3.0 użyj
źródło
Jeśli żądania zostały anulowane / nieosiągalne /
httpStatusCode
przekroczony limit czasu, będzie zawsze0
.Alternatywnie możesz zidentyfikować problem, rozumiejąc
operationStatusCode
. To jestNSError
przedmiot.operationStatusCode
przekroczenie limitu czasu / brak sieci do przetworzenia żądania, plik will-1009
.operationStatusCode
will-999
.Możesz sprawdzić wszystkie inne
NSError
kody i ich opisy w dokumentacji Appleźródło
Udało mi się uzyskać kod statusu w Swift 3:
źródło
To dla mnie praca Dodaj poniższy wiersz do swojej prośby
manager.requestSerializer = [serializator AFJSONRequestSerializer];
źródło