2012-07-18 85 views
0

我想从一个iPhone应用程序将JSON数据发布到我的asp.net MVC服务器。在我的服务器的方法是这样的:从iOS发布JSON到ASP.NET

[HttpPost] 
public String MyMethod(Stream anUpload) { ... } 

这里是从我的应用程序POST的JSON代码:

NSString *theURL = [NSString stringWithFormat:@"http://192.168.1.103/MyServer/MyMethod"]; 
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:theURL]]; 
[theRequest setHTTPMethod:@"POST"]; 

// Serialize my data. 
NSData *theData = [NSJSONSerialization dataWithJSONObject:theList options:kNilOptions error:nil]; 

[theRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[theRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[theRequest setValue:[NSString stringWithFormat:@"%d", [theData length]] forHTTPHeaderField:@"Content-Length"]; 
[theRequest setHTTPBody:theData]; 

然而,当我发送请求,我只是得到一个错误信息从服务器,MyMethod()永远不会被调用。我假设ASP接受POST数据存在问题。有任何想法吗?

编辑:回答以下

回答

1

我找到了答案:

我只需要在服务器端函数改为

public String MyMethod(List<string> aList) { ... }

的ModelBinder的试图反序列化JSON的我,它不喜欢我的参数是一个Stream。