मैं एक वेब सेवा विंडोज Azure पर चल रहा है जो JSON है कि मैं अपने iPhone एप्लिकेशन में उपभोग देता है।कम्प्रेस/उद्देश्य-सी में दबाव हटाना NSString (iPhone) GZIP या हवा निकालना का उपयोग कर
दुर्भाग्यवश, विंडोज़ एज़ूर गतिशील प्रतिक्रियाओं के संपीड़न का समर्थन करने के लिए प्रतीत नहीं होता है (लंबी कहानी) इसलिए मैंने एक असम्पीडित JSON पैकेज लौटाकर इसे चारों ओर पाने का फैसला किया, जिसमें संकुचित (GZIP का उपयोग करके) स्ट्रिंग शामिल है।
, उदा,
{"Error":null,"IsCompressed":true,"Success":true,"Value":"vWsAAB+LCAAAAAAAB..etc.."}
... जहां मूल्य एक जटिल JSON में प्रतिनिधित्व वस्तु की संकुचित स्ट्रिंग है।
यह सर्वर पर कार्यान्वित करना वास्तव में आसान था, लेकिन मेरे जीवन के लिए मैं एक असम्पीडित एनएसएसटींग में एक gzipped एनएसएसटींग को डिकंप्रेस करने का तरीका नहीं समझ सकता, मैं zlib आदि के लिए जो भी उदाहरण पा सकता हूं, वे फाइलों से निपट रहे हैं आदि
क्या कोई मुझे यह कैसे करने के बारे में कोई संकेत दे सकता है? (मैं ऐसे समाधान के लिए भी खुश हूं जो डिफ्लेट का उपयोग करता है क्योंकि मैं भी सर्वर-साइड कार्यान्वयन को डिफ्लेट का उपयोग करने के लिए बदल सकता हूं)।
धन्यवाद !!
स्टीवन
संपादित करें 1: आह, मुझे लगता है कि ASIHTTPRequest उस में निम्नलिखित समारोह का उपयोग कर रहा है स्रोत कोड:
//uncompress gzipped data with zlib
+ (NSData *)uncompressZippedData:(NSData*)compressedData;
... और मुझे पता है कि मैं NSString परिवर्तित कर सकते हैं कर रहा हूँ एनएसडाटा के लिए, तो मैं देखता हूं कि यह मुझे कहीं भी ले जाता है!
संपादित करें 2: दुर्भाग्यवश, संपादन 1 में वर्णित विधि ने मुझे कहीं भी नेतृत्व नहीं किया।
संपादित करें 3: बेस 64 एन्कोडिंग/डिकोडिंग के संबंध में नीचे दी गई सलाह के बाद, मैं निम्नलिखित कोड के साथ आया। एन्कोडेड GzippedString जैसा कि आप अनुमान लगा सकते हैं, एक स्ट्रिंग "हैलो, मेरा नाम स्टीवन इलियट है" जिसे gzipped किया गया है और फिर बेस 64 स्ट्रिंग में परिवर्तित किया गया है। दुर्भाग्य से, परिणाम जो एनएसएलओजी का उपयोग कर प्रिंट करता है वह खाली है।
NSString *encodedGzippedString = @"GgAAAB+LCAAAAAAABADtvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee++997o7nU4n99//P1xmZAFs9s5K2smeIYCqyB8/fnwfPyK+uE6X2SJPiyZ93eaX+TI9Lcuiatvx/wOwYc0HGgAAAA==";
NSData *decodedGzippedData = [NSData dataFromBase64String:encodedGzippedString];
NSData* unGzippedJsonData = [ASIHTTPRequest uncompressZippedData:decodedGzippedData];
NSString* unGzippedJsonString = [[NSString alloc] initWithData:unGzippedJsonData encoding:NSASCIIStringEncoding];
NSLog(@"Result: %@", unGzippedJsonString);
हाय, क्या आप ढांचे के लिए कोई सटीक लिंक प्रदान कर सकते हैं? –
http://www.chilkatsoft.com/downloads_ios.asp – dirkoneill
चिल्काट ढांचे का उपयोग कैसे करें? –