通过iphone中的json web服务发布数据

时间:2011-07-25 09:13:15

标签: iphone objective-c json

我想在按钮点击时通过json webservicesmy发布数据操作代码为:

-(IBAction)login:(id)sender {
    NSString *newurlString = [NSString StringWithFormat:@"{\"name\":\"asit\",\"email\":\"m.kulkarni@easternenterprise.com\",\"businessType\":\"1\",\"score\":30}"];
    NSString * url = @"http://www.nieuwe-dag.nl/mobile_be/public/?action=saveScore";

    NSData *postData = [newurlString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    NSLog(@"urlString::%@",newurlString);
    NSLog(@"postLength::%@",postLength);

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:300];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];

    NSURLConnection *theConnection =[[NSURLConnection alloc] initWithRequest:request delegate:self];


    if( theConnection ) {
        webData = [[NSMutableData data] retain];
    }
    else {
        NSLog(@"theConnection is NULL");
    }
}

在控制台上的响应是:

  

[会议开始于2011-07-25 12:36:48 +0530。] 2011-07-25   12:36:48.860 DepartmentalStoreAdmin [2490:207]无法加载   “header.png”图像从带有标识符的包中的nib引用   “com.easternenterprise.dag”2011-07-25 12:36:48.864   DepartmentalStoreAdmin [2490:207]无法加载“leher.png”图像   从带有标识符的包中的nib引用   “com.easternenterprise.dag”2011-07-25 12:36:50.708   DepartmentalStoreAdmin [2490:207]   urlString :: { “名”: “培训服务处”, “电子邮件”: “m.kulkarni@easternenterprise.com”, “businessType”: “1”, “分数”:30}   2011-07-25 12:36:50.709 DepartmentalStoreAdmin [2490:207]   postLength :: 88 2011-07-25 12:36:52.376   DepartmentalStoreAdmin [2490:207]完成。收到的字节数:52 2011-07-25   12:36:52.377 DepartmentalStoreAdmin [2490:207]

     

THEXML {“result”:“ERROR”,“errors”:[“名称不能为空”]}

我不知道为什么不发布。请任何人帮助我非常紧急。

提前致谢:

1 个答案:

答案 0 :(得分:3)

您的newurlString必须包含变量名称。如果你添加百分比也可以。例如:

NSString *newUrlString = [[NSString stringWithFormat:@"&json={\"name\":\"asit\",\"email\":\"m.kulkarni@easternenterprise.com\",\"businessType\":\"1\",\"score\":30}"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

如果您没有看到任何更改,请访问:

  1. 在弦乐的开头是&json=。将其更改为您的真实变量名称。例如。如果您的服务器在$_POST['data']中检查json,则应使用&data=
  2. stringByAddingPercentEscapesUsingEncoding增加了转义百分比(例如space转换为%20

  3. 编辑:抱歉,这是正确的代码:

    NSString *newUrlString = [NSString stringWithFormat:@"&json=%@",[[NSString stringWithFormat:@"{\"name\":\"asit\",\"email\":\"m.kulkarni@easternenterprise.com\",\"businessType\":\"1\",\"score\":30}"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];