मैं अनुरोध विफलताओं (और आदर्श रूप से सफलताओं के लिए भी) के लिए HTTP प्रतिक्रिया स्थिति कोड (जैसे 400, 401, 403, 503, आदि) को पुनः प्राप्त करना चाहूंगा। इस कोड में, मैं HTTP बेसिक के साथ उपयोगकर्ता प्रमाणीकरण कर रहा हूं और उपयोगकर्ता को यह संदेश देने में सक्षम होना चाहता हूं कि उपयोगकर्ता द्वारा अपना पासवर्ड गलत किए जाने पर प्रमाणीकरण विफल हो गया।
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 प्रतिक्रिया पर विशिष्ट स्थिति कोड प्राप्त करना संभव है?
क्या गैर-2xx प्रतिक्रिया पर HTTP निकाय को पुनः प्राप्त करना संभव है?
धन्यवाद!