使用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]);