如何在iphone中设置JSON post方法的格式

Posted

技术标签:

【中文标题】如何在iphone中设置JSON post方法的格式【英文标题】:How to set the format of JSON post method in iphone 【发布时间】:2011-07-22 10:18:32 【问题描述】:

我正在通过网络服务发送一个帖子请求,但我没有得到我想要的响应。

这是我的代码:

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";
//NSString *urlString =[NSString stringWithFormat:@"name=%@&email=%@&businessType=%d&score=%d",name, email, bussinesstype, score];

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");

【问题讨论】:

【参考方案1】:

您正在将请求类型设置为 json,但您没有创建 json。您正在创建的数据只是 nsstring。我认为您需要创建一个 json 对象。您可以从这里下载 JSON API:

https://github.com/stig/json-framework/

使用 [SBJSONWriter dataWithObject:] 创建 JSON 对象。然后将其传递给您的请求。

有关 JSON 的更多信息:

http://www.json.org/

【讨论】:

【参考方案2】:

你需要合适的postData

NSDictionary *dataDict = @
    @"name": @"asit", 
    @"email": @"m.kulkarni@easternenterprise.com",
    @"businessType": @"1",
    @"score": @(30)
;

NSData *postData = [NSJSONSerialization dataWithJSONObject:dataDict options:0 error:nil];

【讨论】:

以上是关于如何在iphone中设置JSON post方法的格式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 中设置 iCloud Root?

在 iPhone 模拟器中设置位置

iPhone:如何在表格中设置 ImageView 的框架?

如何在iphone录音中设置电平表?

iphone:如何在 webView 中设置字体大小?

如何在iphone sdk的Touch down事件中设置增加声音的速率并重复这个声音