无法通过POST从objective-c发送数据

时间:2013-04-12 00:36:23

标签: objective-c django post nsurlconnection

我正在开发一款适用于iPhone的应用程序,我在一次通话中遇到困难,我必须通过POST发送数据,django网络程序员告诉我应用程序必须接收

param_one = request.POST['param_one']
param_two = request.POST['param_two']

但我无法发送任何数据......

我正在学习Objective-c,所以,请你告诉我如何用一个例子来做这件事?

PS:所有其他不发送任何数据的调用,或通过url传递数据(GET方法)都可以正常工作,所以我正确连接

这是我正在使用的代码:

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"somename" forKey:@"user"];
NSString *jsonString = [dict JSONRepresentation];
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *  request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://web.com/custom/url/call/"]];
[request setValue:jsonString forHTTPHeaderField:@"json"];
[request setHTTPMethod:@"POST"];
[request addValue:csrf forHTTPHeaderField:@"X-CSRFToken"];
[request setHTTPBody:jsonData];
senddata = [[NSURLConnection alloc] initWithRequest:request delegate:self];

1 个答案:

答案 0 :(得分:1)

您应该添加:

[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];

然后服务器将知道您发送的是UTF-8编码的JSON,它将能够适当地解析它。否则它只会得到无形的数据。

除非是出于调试目的,否则将JSON字符串放入标题和正文中是非常奇怪的。