yue1liang1chuan 2013-08-20 03:07 采纳率: 0%
浏览 2835
已采纳

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;
  • 写回答

1条回答

  • xinyoulingxi1_tong 2013-08-20 07:59
    关注
    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];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题