2013-04-16 64 views

回答

12

您不使用NSJSONSerialization類發佈數據。您可以使用NSURL* API(NSURLNSURLConnectionNSURLRequest等)。

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!"); 
}]; 
+1

這不適合我在XCode 5上編譯?另外,你如何序列化對象? – aledalgrande

+1

@aledalgrande Xcode不是編譯器。 (除非你發佈特定的編譯器錯誤,否則我沒有希望可以幫助你。)「序列化對象」是什麼意思?序列化泛型,自定義對象並不是微不足道的,你可以放棄實現'NSCoding'協議,但是你可能需要更復雜的東西 - 再次根據具體的用例。 – 2013-12-26 00:04:16

+1

那麼在Objective-C中,沒有像在Java或Ruby中那樣將對象序列化爲JSON的通用方法?你必須訴諸這些硬編碼的字符串嗎? – aledalgrande

相關問題