如何使用NSJSONSerialization类将数据发布到基于JSON的REST API?

rea*_* 19 1 iphone objective-c ios nsjsonserialization

我想看一些关于如何使用NSJSONSerialization类在URL中获取和POST数据的具体示例/教程.

我知道如何实际获取数据,这是POST在某种程度上令人困惑.任何有用的指针将非常感谢..

小智 11

您不使用NSJSONSerialization该类发布数据.您可以使用NSURL*API( ,,NSURL 等)来代替.NSURLConnectionNSURLRequest

NSURL *url = [NSURL URLWithString:@"http://example.com/foo.php"];
NSMutableURLRequest *rq = [NSMutableURLRequest requestWithURL:url];
[rq setHTTPMethod:@"POST"];

NSData *jsonData = [@"{ \"foo\": 1337 }" dataUsingEncoding:NSUTF8StringEncoding];
[rq setHTTPBody:jsonData];

[rq setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[rq setValue:[NSString stringWithFormat:@"%ld", (long)[jsonData length]] forHTTPHeaderField:@"Content-Length"];

[NSURLConnection sendAsynchronousRequest:rq completion:^(NSURLResponse *rsp, NSData *data, NSError *err) {
    NSLog(@"POST sent!");
}];
Run Code Online (Sandbox Code Playgroud)

  • @aledalgrande如果您的对象是属性列表类型(即序列化很简单:数字,字符串,日期,布尔值,以及它们的数组和字典),那么您可以将它们序列化为plists或JSON.不是这样. (2认同)