我正在尝试从iPhone应用程序将JSON数据发布到我的asp.net MVC服务器。我服务器中的方法如下所示:
[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数据存在问题。有什么想法吗?
编辑:下面的答案
答案 0 :(得分:1)
我找到了答案:
我只需要将服务器端功能更改为
public String MyMethod(List<string> aList) { ... }
ModelBinder试图为我反序列化JSON,它不喜欢我的参数是一个流。