संक्षिप्त उत्तर: सुनिश्चित करें कि आप AFNetworking का हालिया संस्करण चला रहे हैं। आपके द्वारा प्रदान किए गए कोड के आधार पर मैं समस्या के रूप में देख सकता हूं।
लांग जवाब: मैं इस मुद्दे आप AFNetworking के नवीनतम संस्करणों के साथ का वर्णन कर रहे हैं प्रजनन की कोशिश की है और मैं नहीं कर सके। मैंने जेएसओएन का एन्कोडिंग कैसे किया है यह देखने के लिए एएफनेटवर्किंग में खोला। JSON अनुरोधों को एन्कोड करने के लिए AFHTTPClient.m:442NSJSONSerialization का उपयोग करता है।
NSError* error = nil;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:@{@"value" : @YES} options:0 error:&error];
NSLog(@"Resulting JSON:\n\n%@\n", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);
आउटपुट:
{"value":true}
तो @YES
यह करना चाहिए मैं इस मुद्दे का परीक्षण करने के लिए निम्न कोड के साथ आया था। एक नोट के रूप में, सुनिश्चित करें कि अपने कोड में @(YES)
का उपयोग करने के लिए true
के बजाय 1
के रूप में आउटपुट करेगा।
NSError* error = nil;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:@{@"value" : @(YES)} options:0 error:&error];
NSLog(@"JSON:%@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);
आउटपुट:
{"value":1}
है कि मैं के माध्यम से चला गया और कैसे AFHTTPClient जरूरत विन्यस्त किया जा करने के लिए यह पता लगाने की
1
/बजाय
0
true
/
false
के रूप में एक bool बाहर भेजने की कोशिश की के साथ
और नहीं पा सके कोई। मेरा नेटवर्किंग कोड यहाँ है।
AFHTTPClient* httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://<SERVER HERE>"]];
[httpClient setParameterEncoding:AFJSONParameterEncoding];
NSMutableURLRequest *jsonRequest = [httpClient requestWithMethod:@"POST" path:@"/" parameters:@{@"value": @YES}];
AFHTTPRequestOperation *jsonOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:jsonRequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"Success");
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"Failure");
}];
[jsonOperation start];
स्रोत
2012-12-24 18:19:06
चूंकि @YES एक NSNumber है, NSJSONSerialization इसे 0/1 पर बदल देता है। मुझे नहीं लगता कि @ {@ "value" के अलावा कोई तरीका है: (yesOrNo? @ "True": @ "false")} या एक अलग धारावाहिक वर्ग का उपयोग करना। –
@TalBereznitskey मेरे सर्वर के कार्यान्वयन की तरह दिखता है जो एक बुलियन की अपेक्षा करता है कि वह "सत्य"/"झूठी" के स्ट्रिंग मान को अच्छी तरह से संभालता है! यदि आप इसे उत्तर के रूप में पेस्ट करेंगे तो मैं इसे स्वीकार करूंगा :) – abyx