का उपयोग कर रहा AFNetworking का उपयोग कर, एक तरह से खोजने की कोशिश कर रहा हूँ, आवेदन/json होने के लिए Content-Type हैडर स्थापित करने के लिए और शरीर में JSON के साथ पोस्ट करने के लिए एक पोस्ट अनुरोध के शरीर के रूप में। प्रलेखन में जो विधियां मैं देख रहा हूं (पोस्टपैथ और अनुरोध WithMethod) दोनों पैरामीटर का एक शब्दकोश लेते हैं, जो मुझे लगता है कि मानक रूप वाक्यविन्यास में एन्कोड किया गया है। क्या किसी को शरीर के लिए JSON का उपयोग करने के लिए AFHTTPClient को निर्देश देने के तरीके के बारे में पता है, या क्या मुझे अपने अनुरोध को लिखने की आवश्यकता है?पोस्ट करना JSON AFHTTPClient
उत्तर
मैं आगे चला गया और उनके master branch से नवीनतम AFNetworking की जाँच की। बॉक्स के बाहर मैं वांछित व्यवहार प्राप्त करने में सक्षम था। मैंने देखा और यह हालिया परिवर्तन (6 अक्टूबर) जैसा लगता है ताकि आपको नवीनतम को खींचने की आवश्यकता हो।
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://localhost:8080/"]];
[client postPath:@"hello123" parameters:[NSDictionary dictionaryWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", nil]
success:^(id object) {
NSLog(@"%@", object);
} failure:^(NSHTTPURLResponse *response, NSError *error) {
NSLog(@"%@", error);
}];
[client release];
मेरी प्रॉक्सी के तहत मैं कच्चे अनुरोध देख सकते हैं::
POST /hello123 HTTP/1.1
Host: localhost:8080
Accept-Language: en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, ca, hu, vi, en-us;q=0.8
User-Agent: info.evanlong.apps.TestSample/1.0 (unknown, iPhone OS 4.3.2, iPhone Simulator, Scale/1.000000)
Accept-Encoding: gzip
Content-Type: application/json; charset=utf-8
Accept: */*
Content-Length: 21
Connection: keep-alive
{"k2":"v2","k1":"v1"}
AFHTTPClient स्रोत से आप देख सकते हैं कि JSON एन्कोडिंग है
मैं अनुरोध करने के लिए निम्न कोड लिखा था डिफ़ॉल्ट line 170, और line 268 पर आधारित है।
मेरे लिए, जेसन डिफ़ॉल्ट एन्कोडिंग नहीं था। आप मैन्युअल रूप से इस तरह डिफ़ॉल्ट एन्कोडिंग के रूप में सेट कर सकते हैं:
(इवान के कोड का उपयोग कर)
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://localhost:8080/"]];
[client setParameterEncoding:AFJSONParameterEncoding];
[client postPath:@"hello123" parameters:[NSDictionary dictionaryWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", nil]
success:^(id object) {
NSLog(@"%@", object);
} failure:^(NSHTTPURLResponse *response, NSError *error) {
NSLog(@"%@", error);
}];
[client release];
महत्वपूर्ण हिस्सा:
[client setParameterEncoding:AFJSONParameterEncoding];
आपको बहुत बहुत धन्यवाद! आप सही थे, '[क्लाइंट सेट पैरामीटर एन्कोडिंग: AFJSON पैरामीटर एन्कोडिंग];' गायब था। लेकिन इसके अलावा में ऐसा लगता है कि यह भी के लिए यह वास्तव में NSDictionary के साथ काम की जरूरत है: '[ग्राहक registerHTTPOperationClass: [AFJSONRequestOperation वर्ग]];' – thedp
बहुत बहुत शुक्रिया। तुम मेरा दिन बचाओ !! – kb920
- 1. पोस्ट करना JSON
- 2. पोस्ट करना JSON नियंत्रक से
- 3. AFHTTPclient
- 4. AFNetworking (AFJSONRequestOperation) AFHTTPClient
- 5. AFNetworking AFHTTPClient सफलता और असफल
- 6. PHP कर्ल, पोस्ट JSON
- 7. पोस्ट json सर्वर रेल को
- 8. PHP - फ़ाइल_get_contents के माध्यम से JSON पोस्ट करना
- 9. JSON डेटा पोस्ट करने और प्रतिक्रिया
- 10. पोस्ट-बॉडी को JSON ऑब्जेक्ट में jQuery
- 11. एक्सप्रेस में अवैध JSON पोस्ट डेटा पकड़ना?
- 12. JSON पोस्ट के साथ स्वनिर्धारित HTTPHeader फील्ड
- 13. AFNetworking - कैसे पोस्ट अनुरोध
- 14. JQuery पोस्ट JSON ऑब्जेक्ट को सर्वर पर
- 15. कोडनिर्देशक नियंत्रक को JSON पोस्ट करें
- 16. jQuery .ajax पोस्ट बड़े JSON ऑब्जेक्ट
- 17. पोस्ट json MVC नियंत्रक वसंत के
- 18. curl और HttpURLConnection - पोस्ट JSON डेटा
- 19. AFNetworking (AFHttpClient) ऑफ़लाइन मोड NSURLRequestReturnCacheDataDontLoad नीति
- 20. पोस्ट
- 21. पोस्ट JSON शब्दकोश के बिना की/मान पाठ
- 22. AFNetworking JSON
- 23. जेसन प्रतिक्रिया के साथ AFNetworking पोस्ट अनुरोध
- 24. grails में JSON प्रस्तुत करना
- 25. पहली JSON संपत्ति प्राप्त करना
- 26. एक पोस्ट वैरिएबल प्राप्त करना
- 27. एक jQuery अजाक्स में एक JSON डेटा पैकेट serializing पोस्ट
- 28. JSON स्वरूपण (जावा/विकेट सर्वर पर jQuery AJAX पोस्ट के माध्यम से JSON भेजना)
- 29. iphone Json पोस्ट Django सर्वर से अनुरोध QueryDict
- 30. CodeIgniter बाकी सर्वर JSON पोस्ट अनुरोध के साथ काम कर
हुह, मुझे नहीं पता था JSON होने के लिए स्थापित किया गया था डिफ़ॉल्ट एन्कोडिंग। यह एक गलती है (यूआरएल फॉर्म एन्कोडिंग हमेशा डिफ़ॉल्ट होने का मेरा इरादा रहा है; मुझे यकीन नहीं है कि यह कैसे फिसल गया)। @EricAndres: कृपया इसे नोट करें, और अपने कोड में 'self.parameterEncoding = AFJSONParameterEncoding;' के साथ मैन्युअल रूप से JSON पर पैरामीटर एन्कोडिंग सेट करें। – mattt
बहुत बढ़िया, प्रतिक्रिया के लिए धन्यवाद। जब मैं मौका मिलता हूं तो मैं सेटिंग self.parameter एन्कोडिंग को आजमाउंगा। –
हम्म ... जेसन डिफ़ॉल्ट एन्कोडिंग नहीं था, लेकिन एनवीपी (2013 की शुरुआत में) – stackOverFlew