ฉันต้องการดึงรหัสสถานะการตอบกลับ HTTP (เช่น 400, 401, 403, 503 ฯลฯ ) สำหรับคำขอที่ล้มเหลว (และเพื่อความสำเร็จด้วย) ในรหัสนี้ฉันกำลังทำการพิสูจน์ตัวตนผู้ใช้ด้วย HTTP Basic และต้องการส่งข้อความถึงผู้ใช้ว่าการรับรองความถูกต้องล้มเหลวเมื่อผู้ใช้พิมพ์รหัสผ่านผิด
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")
}
ขออภัยข้อผิดพลาดที่เกิดขึ้นดูเหมือนจะไม่ได้ระบุว่าได้รับรหัสสถานะ HTTP 409 จริง:
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
นอกจากนี้จะเป็นการดีที่จะดึงเนื้อหา HTTP เมื่อเกิดข้อผิดพลาดเนื่องจากฝั่งเซิร์ฟเวอร์ของฉันจะใส่คำอธิบายที่เป็นข้อความของข้อผิดพลาดไว้ที่นั่น
คำถาม
เป็นไปได้ไหมที่จะดึงรหัสสถานะจากการตอบกลับที่ไม่ใช่ 2xx?
เป็นไปได้หรือไม่ที่จะดึงรหัสสถานะเฉพาะเมื่อตอบกลับ 2xx?
เป็นไปได้ไหมที่จะดึงเนื้อหา HTTP จากการตอบสนองที่ไม่ใช่ 2xx
ขอบคุณ!