如何在ios中使用nsmutableurlrequest发送递归json请求?

如何在ios中使用nsmutableurlrequest发送递归json请求?,ios,xcode,json,api,nsmutableurlrequest,Ios,Xcode,Json,Api,Nsmutableurlrequest,在iOS中创建此 "{ "email":string, "password":string }" "{ "post": { "title":string, "room_id":int, "content":string, } }" json请求主体,传递从字符串创建的nsdata email=myname@domain.com&password=mypassword 到NSMutableURLReques

在iOS中创建此

"{
"email":string, 
"password":string
}"
"{
"post":
       {
        "title":string,
        "room_id":int,
        "content":string,
       }
}"
json请求主体,传递从字符串创建的nsdata

email=myname@domain.com&password=mypassword
到NSMutableURLRequest的setHTTPBody方法。这样可以很好地工作

但是如果我想创造这个呢

"{
"email":string, 
"password":string
}"
"{
"post":
       {
        "title":string,
        "room_id":int,
        "content":string,
       }
}"
json请求主体?我试着用一些字符串组合来解决这个递归问题,但没有成功。我还检查了NSMutableURLRequest的方法,但我找不到解决这个问题的相关方法

编辑:


这将创建一个帖子,因为它应该是它的罚款,但我需要一个等效的字符串电子邮件=myname@domain.com&password=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];
试试这个

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

其思想是使用一些嵌套字典来描述json,并对它们进行序列化,以便将jsonData传递给请求

这创建了文章,因为它应该是它的罚款,但我不提供从字符串获得的数据。这创建了文章,因为它应该是它的罚款,但我需要一个等效的字符串电子邮件=myname@domain.com&password=mypassword,用于递归情况。当我按原样发送数据时,它不起作用。当我作为我提供的字符串发送时,它可以工作。