2012-08-24 18 views
5

मैं एक वेब सेवा का उपयोग करने की कोशिश कर रहा हूँ के लिए विभिन्न सामग्री प्रकार, एक AFHTTPClient उपवर्ग, एक उलझनAFNetworking AFHTTPClient सफलता और असफल

अनुरोध सफल होती है है के माध्यम से, सामग्री JSON के रूप में दिया जाता है। अगर यह किसी कारण से विफल रहता है, तो सर्वर से त्रुटि को XML के रूप में स्वरूपित किया जाता है।

फिलहाल, मुझे लगता है कि एकमात्र तरीका मैं इस बात से निपट सकता हूं कि यह विशिष्ट XML/JSON RequestOperations का उपयोग करने का प्रयास नहीं है, और पूरी तरह से सादा HTTP अनुरोध के रूप में सबकुछ का इलाज करता है, और फिर मैन्युअल रूप से इसे स्वयं पार्स करने का प्रयास करता है, प्रतिक्रिया के समान दिखने के आधार पर।

अफसोस की बात है, मेरे पास वेब सेवा पर कोई नियंत्रण नहीं है, या मैं सुनिश्चित करता हूं कि यह सभी JSON था।

क्या किसी के पास इसे संभालने के लिए कोई बेहतर सुझाव है?

[संपादित करें]

मैं बनाने का एक ही रास्ता लगता है कि यह थोड़ा क्लीनर, AFHTTPRequestOperation का एक नया उपवर्ग, उस सामग्री का पता लगाने के आंतरिक रूप से टाइप संभाला, और फिर या तो पार्स JSON या एक GDataXML वस्तु वापस पारित कर दिया बनाने होगा सर्वर से क्या लौटाया गया था इसके आधार पर।

धन्यवाद

+0

यह मेरे द्वारा उपयोग की जाने वाली कई वेब सेवाओं के समान है, सफलता पर JSON और विफल होने पर सादा पाठ। सबसे अच्छा आप कर सकते हैं या तो एक अलग सामग्री प्रकार पर JSON को एक त्रुटि फेंक दें या विशिष्ट त्रुटियों के लिए प्रतिक्रिया का प्रयास करें। – danielbeard

उत्तर

0

यह साफ या सबसे सर्वोत्कृष्ट समाधान नहीं हो सकता है, लेकिन यदि आप किसी मौजूदा JSON पुस्तकालय है कि प्रतिक्रिया तथ्य मान्य JSON में है के साथ एक चेक कर सकता है। यदि ऐसा है, तो सामान्य रूप से आगे बढ़ें; यदि यह नहीं है, तो इसे अपने हाथ से नक्काशीदार पार्सिंग समाधान के साथ इलाज करें।

+0

धन्यवाद। मैंने उस दृष्टिकोण को माना, लेकिन इसे 'असफल' वापस पाने के लिए इसे पार्स करने का प्रयास करने के ऊपरी हिस्से को पसंद नहीं आया। मुझे लगता है कि पार्सिंग शायद शुरुआती है अगर यह गैर-JSON का पता लगाता है, तो संभवतः बहुत अक्षम नहीं होना चाहिए। –

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