Anda tidak memvalidasi kode status respons, jadi ada kemungkinan bahwa 404 akan mengembalikan kasing .Success
kepada Anda. Semua yang dilakukan serializer responseData
adalah memvalidasi bahwa tidak ada kesalahan (yang tidak akan terjadi karena Anda tidak memvalidasi kode status respons) atau bahwa data ada.
public static func dataResponseSerializer() -> ResponseSerializer<NSData, NSError> {
return ResponseSerializer { _, _, data, error in
guard error == nil else { return .Failure(error!) }
guard let validData = data where validData.length > 0 else {
let failureReason = "Data could not be serialized. Input data was nil or zero length."
let error = Error.errorWithCode(.DataSerializationFailed, failureReason: failureReason)
return .Failure(error)
}
return .Success(validData)
}
}
Dalam kasus Anda, Anda menerima 404 yang tidak menimbulkan kesalahan, dan server mengembalikan data. Oleh karena itu, serializer responseData
Anda berhasil. Jika Anda mengharapkan 404 untuk selalu menimbulkan kesalahan, Anda juga harus menggunakan metode .validate(statusCode: [200])
sebelum responseData
serializer. Info lebih lanjut di Bagian Validasi README.
Di masa mendatang, pertanyaan seperti ini lebih cocok untuk Stack Overflow dengan tag alamofire
. Kami menggunakan GitHub untuk bug dan permintaan fitur. 🍻.
Dari Pedoman Kontribusi kami
Kami tidak menggunakan GitHub sebagai forum dukungan. Untuk pertanyaan penggunaan apa pun yang tidak spesifik untuk proyek itu sendiri, silakan tanyakan di Stack Overflow . Dengan demikian, Anda akan lebih mungkin untuk memecahkan masalah Anda dengan cepat, dan Anda akan membiarkan orang lain dengan pertanyaan yang sama untuk menemukan jawabannya. Ini juga memungkinkan pengelola untuk fokus pada peningkatan proyek untuk orang lain.
saya sangat menghargai
Saya berjuang dengan masalah ini ... Terima kasih banyak.
Komentar yang paling membantu
Anda tidak memvalidasi kode status respons, jadi ada kemungkinan bahwa 404 akan mengembalikan kasing
.Success
kepada Anda. Semua yang dilakukan serializerresponseData
adalah memvalidasi bahwa tidak ada kesalahan (yang tidak akan terjadi karena Anda tidak memvalidasi kode status respons) atau bahwa data ada.Dalam kasus Anda, Anda menerima 404 yang tidak menimbulkan kesalahan, dan server mengembalikan data. Oleh karena itu, serializer
responseData
Anda berhasil. Jika Anda mengharapkan 404 untuk selalu menimbulkan kesalahan, Anda juga harus menggunakan metode.validate(statusCode: [200])
sebelumresponseData
serializer. Info lebih lanjut di Bagian Validasi README.Di masa mendatang, pertanyaan seperti ini lebih cocok untuk Stack Overflow dengan tag
alamofire
. Kami menggunakan GitHub untuk bug dan permintaan fitur. 🍻.Dari Pedoman Kontribusi kami
Menanyakan pertanyaan
Kami tidak menggunakan GitHub sebagai forum dukungan. Untuk pertanyaan penggunaan apa pun yang tidak spesifik untuk proyek itu sendiri, silakan tanyakan di Stack Overflow . Dengan demikian, Anda akan lebih mungkin untuk memecahkan masalah Anda dengan cepat, dan Anda akan membiarkan orang lain dengan pertanyaan yang sama untuk menemukan jawabannya. Ini juga memungkinkan pengelola untuk fokus pada peningkatan proyek untuk orang lain.