1. ホーム
  2. c#

MVC 4 APIルートのデバッグはどうやるの?

2023-08-20 21:09:42

質問

私は、MVC4 RESTful サーバーと通信するために RESTsharp を使用する WP7 ゲームを持っていますが、動作するリクエストを作るのにしばしば問題が発生します。

この例では、私の GameController がヒットしていますが Post メソッドはヒットしない、その理由がわからない。

クライアントのコードです。

public void JoinRandomGame()
{
  client = new RestClient
  {
      CookieContainer = new CookieContainer(),
      BaseUrl = "http://localhost:21688/api/",
  };

  client.Authenticator = GetAuth();

  RestRequest request = new RestRequest(Method.POST)
  {
      RequestFormat = DataFormat.Json,
      Resource = "game/"

  };

  client.PostAsync(request, (response, ds) =>
  {});
}

サーバーのコードです。

    public void Post(int id)
    {
        if (ControllerContext.Request.Headers.Authorization == null)
        {
            //No auth
        }
        if (!loginManager.VerifyLogin(ControllerContext.Request.Headers.Authorization.Parameter))
        {
            //Failed login
        }

        string username;
        string password;
        LoginManager.DecodeBase64(ControllerContext.Request.Headers.Authorization.Parameter, out username, out password);
        gameManager.JoinRandomGame(username);
    }

私のルートはこのようなものです。

       routes.MapHttpRoute(
            name: "gameAPI",
            routeTemplate: "api/game/{gameId}",
            defaults: new
            {
                controller = "game",
                gameId = RouteParameter.Optional
            }             
        );

どのように解決するのですか?

RouteDebuggerは、どのルートがヒットするか/しないかを把握するのに適しています。

http://nuget.org/packages/routedebugger