WCFWebApiを使用してプログラムされたAPIにいくつかの情報を投稿しようとしています。クライアントでは、RESTfulサービスのRESTクライアントであるrestsharpを使用しています。ただし、リクエストにいくつかのパラメーターを追加してpostしようとすると、サービスのpostメソッドが呼び出されず、クライアントの応答オブジェクトが500ステータス(内部サーバーエラー)になりますが、次の行にコメントすると、 mパラメータを追加すると、リクエストはサービスで公開されているpostメソッドに到達します。
クライアントからのコードは次のとおりです。
[HttpPost]
public ActionResult Create(Game game)
{
if (ModelState.IsValid)
{
var request = new RestRequest(Method.POST);
var restClient = new RestClient();
restClient.BaseUrl = "http://localhost:4778";
request.Resource = "games";
//request.AddParameter("Name", game.Name,ParameterType.GetOrPost); this is te line when commented everything works fine
RestResponse<Game> g = restClient.Execute<Game>(request);
return RedirectToAction("Details", new {id=g.Data.Id });
}
return View(game);
}
このサービスのコードは次のとおりです。
[WebInvoke(UriTemplate = "", Method = "POST")]
public HttpResponseMessage<Game> Post(Game game, HttpRequestMessage<Game> request)
{
if (null == game)
{
return new HttpResponseMessage<Game>(HttpStatusCode.BadRequest);
}
var db = new XBoxGames();
game = db.Games.Add(game);
db.SaveChanges();
HttpResponseMessage<Game> response = new HttpResponseMessage<Game>(game);
response.StatusCode = HttpStatusCode.Created;
var uriBuilder = new UriBuilder(request.RequestUri);
uriBuilder.Path = string.Format("games/{0}", game.Id);
response.Headers.Location = uriBuilder.Uri;
return response;
}
サービス内のゲームオブジェクトにデータが入力されるように、リクエストにパラメーターを追加する必要がありますが、パラメーターを追加しようとするたびにサービスが中断した場合、これを行う方法がわかりません。
クライアントとサーバーの両方が.NETMVC3アプリケーションであることを忘れました。
どんな助けでもそれをいただければ幸いです。前もって感謝します。