Iphone 如何在iOS中发送post请求中的表单数据?

Iphone 如何在iOS中发送post请求中的表单数据?,iphone,ios,objective-c,url,post,Iphone,Ios,Objective C,Url,Post,可能重复: 我对人际网络之类的东西非常缺乏经验,所以请友善一点 我正在尝试发送一个包含以下表单数据的post请求 {“电子邮件”:JoeSmith@aol.com,“密码”:“密码”,“密码确认”:“密码”,“姓名”:“乔·史密斯”,“手机”:“4402415585”,“地址”:“假街”}: 到目前为止,我的情况如下: NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:

可能重复:

我对人际网络之类的东西非常缺乏经验,所以请友善一点

我正在尝试发送一个包含以下表单数据的post请求

{“电子邮件”:JoeSmith@aol.com,“密码”:“密码”,“密码确认”:“密码”,“姓名”:“乔·史密斯”,“手机”:“4402415585”,“地址”:“假街”}:

到目前为止,我的情况如下:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",SERVER_ADDRESS]] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
                                                   timeoutInterval:10];
[request setHTTPMethod: @"POST"];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
[connection start];

我的问题是我不知道如何在这个请求中包含表单数据。我确信有一种简单的方法可以使用,即
NSMutableURLRequest
,但我还没有弄清楚是哪种方法。

您需要将JSON字符串转换为NSData格式。然后,您就可以将此数据设置为URL请求对象中的HTTP主体

添加代码示例:

NSData* postData= [<yourJSON> dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
  [request setHTTPMethod:@"POST"];
  [request setValue:[NSString stringWithFormat:@"%d", postData.length] forHTTPHeaderField:@"Content-Length"];
  [request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];
  [request setHTTPBody:postData];

  NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request 
                                                                delegate:self];

  [connection start];
NSData*postData=[dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest*请求=[NSMutableUrlRequestRequestWithURL:url];
[请求设置HttpMethod:@“POST”];
[request setValue:[NSString stringWithFormat:@“%d”,postData.length]用于HttpHeaderField:@“内容长度”];
[request setValue:@“application/x-www-form-urlencoded charset=utf-8”用于HttpHeaderField:@“Content Type”];
[请求setHTTPBody:postData];
NSURLConnection*connection=[[NSURLConnection alloc]initWithRequest:request
代表:自我];
[连接启动];

如果需要更多帮助,请告诉我…

“我确信有一个简单的方法”-我不会打赌。表单数据是一个HTMLISM,URL加载机制旨在跨协议通用,并特别支持HTTP。如果要发布表单数据,请创建一个合适的HTTP请求主体,或者寻找更全面的第三方HTTP客户端库。另请参阅无法将josn转换为nsdata@deepakkumar使用
SBJSON
库。它将解决所有与json相关的问题。