0

我有一个 NSData 对象,它代表 IOS Facebook SDK 提供的 Facebook 用户。这个对象是 JSON 格式的,我正在尝试将它发布到服务器应用程序。下面是我执行 HTTP Post 的 Objective C 代码。此代码的问题在于服务器上的请求正文为空。有人能发现我做错了什么吗?

-(void)postUserDataToServer:(NSString *) user {

// Convert the JSON string to Data to be sent.

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://ec2-whatever.compute-1.amazonaws.com:3000/user"]];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", [user length]] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:user];
[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

}
4

1 回答 1

3

好吧......用户不是NSData!您必须将字符串转换为数据

assert(user.length);
id bodyData = [user dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPBody = bodyData;
于 2012-12-01T18:30:43.093 回答