我正在尝试设置一个简单的测试来向我的自托管 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
.
我可能错过了什么?