2013-02-06 68 views
0

在iOS中創建此如何在ios中使用nsmutableurlrequest發送遞歸json請求?

"{ 
"email":string, 
"password":string 
}" 

JSON請求的身體,我路過,我從字符串創建的NSData

[email protected]&password=mypassword 

到NSMutableURLRequest.This的setHTTPBody方法工作正常IM確定與這個。

但是如果我想創造這個

"{ 
"post": 
     { 
     "title":string, 
     "room_id":int, 
     "content":string, 
     } 
}" 

JSON請求主體是什麼?我試圖做一些字符串組合來解決這個遞歸,但沒有真正解決。我也檢查了NSMutableURLRequest的方法,但我無法找到相關的東西來解決這個問題。

編輯:

這將創建因爲它應該是其優良的職位,但我需要一個等價的字符串[email protected] &密碼=輸入mypassword,遞歸情況。當我發送數據時,它應該是無效的。當我發送字符串,我提供它的作品。

NSString *usertoken = [appDelegate token]; 
NSString *posttopic = @"111testtopic"; 
NSString *postbody = @"111testbody"; 

NSDictionary *dict = @{@"post":@{@"title":posttopic,@"room_id":@"246",@"content":postbody}}; 
NSData *body = [NSJSONSerialization dataWithJSONObject:dict 
               options:NSJSONWritingPrettyPrinted 
               error:nil]; 



NSString *postLength = [NSString stringWithFormat:@"%d", [body length]]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

//send the post 
NSString *urlstring = [NSString stringWithFormat:@"http://mydomain.com/posts.json?auth_token=%@", usertoken]; 
[request setURL:[NSURL URLWithString:urlstring]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded;charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:body]; 



NSURLResponse *response; 
NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; 

回答

1

試試這個

NSDictionary *dict = @{@"post":@{@"title":string,@"room_id":int,@"content":string}}; 
NSData *body = [NSJSONSerialization dataWithJSONObject:dict 
               options:NSJSONWritingPrettyPrinted 
               error:&error]; 

的想法是使用一些的嵌套字典來描述你的JSON和序列化他們讓你jsonData傳遞到請求。

+0

這創建了一個帖子,因爲它應該是它的好,但我不提供從字符串 – onuryilmaz

+0

獲得的nsdata這創建了該帖子,因爲它應該是它的罰款,但我需要一個相當於字符串電子郵件= myname @域。 com&password = mypassword遞歸的情況。當我發送數據時,它應該是無效的。當我發送字符串,我提供它的作品。 – onuryilmaz