我正在开发一款适用于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];
答案 0 :(得分:1)
您应该添加:
[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
然后服务器将知道您发送的是UTF-8编码的JSON,它将能够适当地解析它。否则它只会得到无形的数据。
除非是出于调试目的,否则将JSON字符串放入标题和正文中是非常奇怪的。