0

iPhone アプリから JSON データを asp.net MVC サーバーに POST しようとしています。私のサーバーのメソッドは次のようになります。

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

そして、これが私のアプリからJSONをPOSTするコードです:

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() は呼び出されません。POST データを受け入れる ASP に問題があると想定しています。何か案は?

編集:以下の回答

4

1 に答える 1

1

私は答えを見つけました:

サーバー側の関数を次のように変更する必要がありました

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

ModelBinder は JSON を逆シリアル化しようとしていましたが、パラメーターがストリームであることが気に入らなかったのです。

于 2012-07-18T04:20:02.203 に答える