2013-08-19 230 views
0

我有JSON格式像下面我需要POST请求切断,但来自服务器的响应是错误500请求失败“JSON”

{“名字”:“沙拉斯K”,“姓氏” “巴布”, “moMerchantAddresses”:[{ “电子邮件”: “[email protected]”}]}>

NSMutableArray *objects = [NSMutableArray arrayWithObjects:@"Sharath",@"babu",@"[{\"email\":\"[email protected]\"}]", nil]; 
     NSMutableArray *keys = [NSMutableArray arrayWithObjects:@"firstName",@"lastName",@"moMerchantAddresses", nil]; 
NSMutableDictionary *jsonDict = [NSMutableDictionary dictionaryWithObjects:objects forKeys:keys]; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict 
                options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string 
                error:nil]; 

NSString *postLength = [NSString stringWithFormat:@"%d",[jsonData length]]; 

ServiceInterface *service = [[ServiceInterface alloc] init]; 
service.theDelegate = self; 
service.theSuccessMethod = @selector(responseMerchantCreationService:); 
service.theFailureMethod = @selector(requestFailedWithError:); 
[self addServiceInterfaceToServiceStack:service]; 
NSString* stringURL = [kBase_URL stringByAppendingString:@"/merchant/create"]; 

NSString* webStringURL = [stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL* url = [NSURL URLWithString:webStringURL]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 

[request setHTTPBody:jsonData]; 
[request setTimeoutInterval:30.0f]; 


NSLog(@"request file :: %@",request); 
[service startWithRequest:request]; 
service = nil; 

请帮我在这

+0

基本http://stackoverflow.com/questions/15377212/get-the-password-from-the-webservices-url-and-access-through-that-password/15377242#15377242 – iPatel

回答

1

它可以帮助你。

NSMutableDictionary *emailDict = [[NSMutableDictionary alloc] initWithCapacity:0]; 
[emailDict setObject:@"[email protected]" forKey:@"email"]; 

NSMutableArray *emailArr = [[NSMutableArray alloc] init]; 
[emailArr addObject:emailDict]; 

NSMutableDictionary *mainDict = [[NSMutableDictionary alloc] initWithCapacity:0]; 
[mainDict setObject:@"Sharath" forKey:@"firstName"]; 
[mainDict setObject:@"babu" forKey:@"lastName"]; 
[mainDict setObject:emailDict forKey:@"moMerchantAddresses"]; 

Now change this mainDict to NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mainDict options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string 
                error:nil];