Saya ingin mendapatkan kembali kode status tanggapan HTTP (misalnya 400, 401, 403, 503, dll) untuk kegagalan permintaan (dan idealnya juga untuk keberhasilan). Dalam kode ini, saya melakukan otentikasi pengguna dengan HTTP Basic dan ingin dapat mengirim pesan kepada pengguna bahwa otentikasi gagal ketika pengguna salah mengetikkan sandi mereka.
Alamofire.request(.GET, "https://host.com/a/path").authenticate(user: "user", password: "typo")
.responseString { (req, res, data, error) in
if error != nil {
println("STRING Error:: error:\(error)")
println(" req:\(req)")
println(" res:\(res)")
println(" data:\(data)")
return
}
println("SUCCESS for String")
}
.responseJSON { (req, res, data, error) in
if error != nil {
println("JSON Error:: error:\(error)")
println(" req:\(req)")
println(" res:\(res)")
println(" data:\(data)")
return
}
println("SUCCESS for JSON")
}
Sayangnya, kesalahan yang dihasilkan tampaknya tidak menunjukkan bahwa kode status HTTP 409 benar-benar diterima:
STRING Error:: error:Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo=0x7f9beb8efce0 {NSErrorFailingURLKey=https://host.com/a/path, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=https://host.com/a/path})
req:<NSMutableURLRequest: 0x7f9beb89d5e0> { URL: https://host.com/a/path }
res:nil
data:Optional("")
JSON Error:: error:Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo=0x7f9beb8efce0 {NSErrorFailingURLKey=https://host.com/a/path, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=https://host.com/a/path})
req:<NSMutableURLRequest: 0x7f9beb89d5e0> { URL: https://host.com/a/path }
res:nil
data:nil
Selain itu, alangkah baiknya untuk mengambil badan HTTP ketika terjadi kesalahan karena sisi server saya akan meletakkan deskripsi tekstual tentang kesalahan di sana.
Pertanyaan
Apakah mungkin untuk mengambil kode status setelah respon non-2xx?
Apakah mungkin untuk mengambil kode status tertentu setelah respons 2xx?
Apakah mungkin untuk mengambil isi HTTP setelah respons non-2xx?
Terima kasih!