Alamofire: isSuccess selalu benar, bahkan dengan kode kesalahan

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

Server mengirimkan kode respons 404, tetapi sepertinya kerangka kerja menafsirkannya sebagai sukses.

Kode:

Alamofire.request(.GET, Constants.Path.rootUrl + "/api/users", parameters: ["username" : usernameString, "limit":3] , headers: ["tb-token" : userToken!])
            .responseJSON { response in


                print(response.request)  // original URL request
                print(response.response) // URL response
                print(response.data)     // server data
                print(response.result)   // result of response serialization


                let results = response.result

                if let JSON = response.result.value {

                    if response.result.isSuccess == true {
                        print("Success with JSON: \(JSON)")
                        self.tableView.hidden = false

                        self.resultsDict = results.value as! NSArray

                        let resultsNumber = results.value!.count

                        self.numberOfResults.text = "Results(\(resultsNumber))"
                        self.numberOfResults.hidden = false

                        self.resultsN = resultsNumber
                        self.loadedMode = true


                        self.tableView.reloadData()
                        self.tableView.hidden = false
                    }
                }
                    else {print("error")}

        }

isSuccess selalu benar, kode apa pun yang dikirim server kembali.

question response serializer

Semua 3 komentar

Secara default Alamofire mendaftarkan respons apa pun yang berhasil melewati serializer respons (dalam contoh Anda, JSONResponseSerializer digunakan oleh .responseJSON ) sebagai sukses. Jika Anda ingin memvalidasi kode respons permintaan Anda, cukup tambahkan .validate() ke rantai permintaan Anda. Ini akan memastikan bahwa kode respons Anda antara 200 dan 299, inklusif. Anda juga dapat menyesuaikan validasi menggunakan metode yang dijelaskan dalam dokumentasi .

Dalam kasus Anda:

Alamofire.request(.GET, Constants.Path.rootUrl + "/api/users", parameters: ["username" : usernameString, "limit":3] , headers: ["tb-token" : userToken!])
            .validate()
            .responseJSON { response in }

Terima kasih, bekerja seperti pesona!

Terima kasih, berhasil. Menggunakan .validate() respons divalidasi.
Tetapi ada masalah lain, menggunakan .validate() Saya tidak mendapatkan nilai respons: response.result.value .
Apakah ada solusi, atau solusi?
Terima kasih

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

tib picture tib  ·  3Komentar

yamifr07 picture yamifr07  ·  3Komentar

lvandal picture lvandal  ·  3Komentar

Footjy picture Footjy  ·  3Komentar

shivang2902 picture shivang2902  ·  3Komentar