2011-11-21 16 views
16

मैं आईओएस ऐप में रेस्टकिट का उपयोग कर रहा हूं और मुझे कुछ HTTP त्रुटि कोडों के लिए विशेष हैंडलिंग की आवश्यकता है। request:didFailLoadWithError: के अंदर प्रतिक्रिया HTTP स्थिति कोड की जांच कैसे की जा सकती है? NSError के userInfo शब्दकोश में कुछ प्रविष्टि है?RestKit: अनुरोध विफल होने पर HTTP स्थिति कोड प्राप्त करना

मुझे RKRequestDelegate documentation में कुछ भी नहीं मिला।

- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error 

उत्तर

50

RESTkit और objectManager के नए संस्करण का उपयोग कर लोगों के लिए, आप RKObjectRequestOperation से statusCode लाने कर सकते हैं:

operation.HTTPRequestOperation.response.statusCode

+0

यह RestKit v0.20 में सही उत्तर है –

1

statusCode संपत्ति मेरे लिए काम करता है RKResponse पर पाया:

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error 
{ 
    switch ([[objectLoader response] statusCode]) { 
     case 409: 
    ... 

} 
+0

मैं सिर्फ RKClient उपयोग कर रहा हूँ, इसलिए मैं RKRequestDelegate के माध्यम से सूचित किया जाए, नहीं ObjectManagerDelegate। सभी RKRequestDelegate त्रुटियों के लिए प्रदान करता है RKRequest और एक NSError है। – pepsi

+0

आरकेआरक्वेट में 0.10.3 में एक प्रतिक्रिया संपत्ति है। – Jon

3

ऐसा लगता है कि didFailLoadWithError: HTTP त्रुटियों के लिए नहीं बुलाया जाता है

यहाँ प्रतिनिधि विधि के लिए इंटरफ़ेस है। request:didLoadResponse: विधि अभी भी HTTP त्रुटियों के लिए बुलाया गया है, इसलिए प्रतिक्रिया (और इसलिए स्थिति कोड) उपलब्ध हैं।

संबंधित मुद्दे