自己ホスト Web-API サーバーに POST 要求を行うための簡単なテストをセットアップしようとしています。
var config = new HttpSelfHostConfiguration(new Uri(baseAddress));
// add a route
config.Routes.MapHttpRoute(name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
コントローラーを追加しました:
public class PayloadController : ApiController
{
public string Get()
{
return "Hello from GET";
}
public HttpResponseMessage PostItem(Payload payload)
{
// payload
//...
}
}
そして、対応するモデルがあります(プロパティが含まれていることを確認してください):
public class Payload
{
public string Date { get; set; }
public string Command { get; set; }
}
Chrome で Rest Console を使用してサーバーをテストし、コントローラーで GET の正しい結果を取得しています。
次のリクエストを POST として発行します。
Request Url: http://localhost:8080/api/payload
Request Method: POST
Params: {
"Date": "2012.09.26",
"Command": "Hello"
}
編集: Content-Type はapplication/jsonに設定され、エンコーディングはUTF-8に設定されます
コントローラーでブレークポイントを設定すると、POST パラメーターがPaylod
オブジェクトに正しく逆シリアル化されていないことが示されます。パラメーターはnull
です。
何が欠けている可能性がありますか?