开发者社区> 问答> 正文

iPhone应用-JSON请求失败

Json格式如下,要发送请求到服务器,但是返回的是错误500。

`{"firstName":"Sharath K", "lastName":"babu", "moMerchantAddresses":[{"email":"abc@abc.co.in"}]} >
`

 NSMutableArray *objects =  [NSMutableArray  arrayWithObjects:@"Sharath",@"babu",@"[{\"email\":\"abc@abc.co.in\"}]", 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;

展开
收起
爵霸 2016-03-17 11:06:20 2172 0
1 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista
    NSMutableDictionary *emailDict = [[NSMutableDictionary alloc] initWithCapacity:0];
    [emailDict setObject:@"abc@abc.co.in" 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"];

    修改mainDict为:

    NSData *jsonData = [ NSJSONSerialization dataWithJSONObject:mainDict options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
                                                             error:nil];
    2019-07-17 19:04:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载