使用AFNetworking发送嵌套的JSON
要将注册数据发送到服务器,我使用JSON的forms如下:
{"regData": { "City":"Some City", "Country":"Some Country", "Email_Id":"abc@gmail.com", "MobileNumber":"+00xxxxxxxxxx", "UserName":"Name Of user" } }
这是如何发送。
NSURL * url = [[NSURL alloc] initWithString:registerUrlString]; AFHTTPClient * httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; httpClient.parameterEncoding = AFJSONParameterEncoding; [[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]; NSDictionary * params = @{@"regData": @{ @"City": self.cityField.text, @"Country": self.countryField.text, @"Email_Id": self.emailField.text, @"MobileNumber": self.numberField.text, @"UserName": self.userName.text, } }; NSMutableURLRequest * request = [httpClient requestWithMethod:@"POST" path:registerUrlString parameters:params]; AFHTTPRequestOperation * operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSLog(@"Success: %@", JSON); } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { NSLog(@"Error: %@", [error debugDescription]); }]; [operation start];
但不幸的是我得到这个错误:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x94b3c30 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
你的要求很好。 Error Domain=NSCocoaErrorDomain Code=3840
正在返回,因为您的服务器响应无效的JSON对象。 NSLog
operation.responseString
看看是什么被送回。
试试这个来得到实际的错误
NSLog(@"Error: %@", [error debugDescription]); NSLog(@"Error: %@", [error localizedDescription]);