Alamofire: kode status: 404, tapi response.result = SUKSES

Dibuat pada 27 Okt 2015  ·  3Komentar  ·  Sumber: Alamofire/Alamofire

1

response serializer support

Komentar yang paling membantu

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

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.

Semua 3 komentar

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

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.

saya sangat menghargai

Saya berjuang dengan masalah ini ... Terima kasih banyak.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat