मैंने मैक पर अभी विकास शुरू कर दिया है और कोको को एक उपयोगी और विचारशील रूपरेखा पाया है, लेकिन इसकी HTTP कार्यक्षमता ने मुझे परेशान किया है।समझदार प्रतिक्रिया के साथ परमाणु, एसिंक्रोनस HTTP फ़ाइल पोस्ट?
मेरे पास HTTP GET विधि का उपयोग कर मेरे वेबसर्वर से फ़ाइल डाउनलोड करने के लिए एक NSURLConnection ऑब्जेक्ट है। NSURLConnect का एसिंक्रोनस कनेक्शन बहुत अच्छा है, मुझे बहुत सारी प्रतिक्रिया मिलती है, मुझे प्रत्येक एनएनडीएटी ऑब्जेक्ट के रूप में प्राप्त किया जाता है जिसे मैं क्लाइंट एंड पर फ़ाइल को परमाणु रूप से पुनर्निर्माण करने के लिए उपयोग कर सकता हूं और, महत्वपूर्ण रूप से, उपयोगकर्ता को प्रगति रिपोर्ट के साथ प्रदान करता हूं: [myData लंबाई ]।
अपलोड, हालांकि, कहीं भी साफ नहीं हैं। आप या तो अपने थ्रेड में एक सिंक्रोनस अनुरोध चिपक सकते हैं या एसिंक्रोनस अनुरोध (जिसे मैं मानता हूं कि अपने स्वयं के धागे को जन्म देता है) को कॉल कर सकता है, लेकिन न ही आपको कोई उपयोगी प्रतिक्रिया प्रदान करता है। डेटा का अनुरोध करने के लिए कोई प्रतिनिधि नहीं है या डेटा भेजते समय भी मुझे बताएं। संभवतः यह मुझे उपलब्ध स्मृति से छोटी फ़ाइलों तक सीमित करता है।
मेरा प्रश्न है, इसलिए, कोको का उपयोग करके HTTP पोस्ट फ़ाइल अपलोड के लिए एक सरल और सुरुचिपूर्ण समाधान है जो प्रतिक्रिया का एक अच्छा सौदा और फ़ाइलों को एक-दूसरे के बजाय भाग-पढ़ने के लिए क्षमता प्रदान करता है? या क्या मुझे अपनी खुद की कक्षा निम्न स्तर की नेटवर्किंग कार्यक्षमता से लिखनी चाहिए?
धन्यवाद!
उन्हें अपने धागे में क्यों न जाने दें? आप यह सुनिश्चित करने के लिए एनएसओपरेशन का उपयोग कर सकते हैं कि आप निर्माण/प्रबंधन/आदि नहीं बना रहे हैं। जिन धागे की आपको आवश्यकता नहीं है। POST ऑपरेशन से आप किस तरह की डेटा फीडबैक की उम्मीद करते हैं? –
अब तक अपलोड किए गए डेटा की मात्रा। मैं संभावित रूप से बड़ी फाइलों से निपट रहा हूं, इसलिए मुझे उपयोगकर्ता को प्रगति पट्टी या पसंद के साथ प्रदान करने की आवश्यकता है। थ्रेडिंग इतना मुद्दा नहीं है, फाइलों को लोड करने और प्रतिक्रिया प्राप्त करने की क्षमता अधिक है। बेतुका तेज़ उत्तर के लिए प्रॉप्स! – Dani
आह, ठीक है! मैं शायद खुद को कुछ रोल करूँगा। मुझे पूरा यकीन है कि मैंने एक बार POST कार्यक्षमता के साथ NSURL के लिए एक सभ्य वर्ग देखा, लेकिन मुझे याद नहीं है कि ... शायद कोई एक सभ्य उत्तर जोड़ देगा, लेकिन आप इसे थोड़ा सा Google करना चाहेंगे। मुझे याद है कि यह मुझे खुद को खोजने के लिए थोड़ा खोद गया। –