0

我正在为 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];
4

1 回答 1

1

您可能应该添加:

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

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

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

于 2013-04-12T00:40:16.757 回答