Saya melihat bahwa ada daftar kode status http yang diterima yang dapat saya modifikasi, tetapi saya pikir akan lebih bersih jika saya bisa mendapatkan kode status http di blok kegagalan ..
Oke, temukan jawabannya dengan objek operasi
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"error code %d",[operation.response statusCode]);
}];
afnetworking
MonkeyBonkey
sumber
sumber
[operation.request HTTPMethod]
Di versi AFNetworking yang lebih baru, Anda dapat mengambil objek respons dari kesalahan:
Ini berguna jika Anda melakukan penanganan kesalahan lebih jauh ke atas dan tidak ingin meneruskan objek respons.
sumber
NSError *underlyingError = error.userInfo[@"NSUnderlyingError"]
Untuk AFNetworking 3.0 , gunakan
sumber
Jika permintaan dibatalkan / tidak dapat dijangkau / batas waktu,
httpStatusCode
akan selalu0
.Cara lainnya, Anda dapat mengidentifikasi masalah dengan memahami
operationStatusCode
. Itu adalah sebuahNSError
Objek.operationStatusCode
akan-1009
.operationStatusCode
akan-999
.Anda dapat memeriksa semua
NSError
kode lain dan deskripsinya di dokumentasi Applesumber
Saya bisa mendapatkan kode status dengan Swift 3:
sumber
Ini bekerja untuk saya Tambahkan baris di bawah ini ke permintaan Anda
manager.requestSerializer = [AFJSONRequestSerializer serializer];
sumber