Asp.net web api 自托管Web API-Post参数为null
我正在尝试设置一个简单的测试,向我的自托管Web API服务器发出POST请求Asp.net web api 自托管Web API-Post参数为null,asp.net-web-api,.net-4.5,Asp.net Web Api,.net 4.5,我正在尝试设置一个简单的测试,向我的自托管Web API服务器发出POST请求 var config = new HttpSelfHostConfiguration(new Uri(baseAddress)); // add a route config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",
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
//...
}
}
我有相应的模型(确保它包含属性):
我正在使用Chrome上的Rest控制台测试服务器,在我的控制器中得到正确的结果
以邮寄方式发出以下请求:
Request Url: http://localhost:8080/api/payload
Request Method: POST
Params: {
"Date": "2012.09.26",
"Command": "Hello"
}
编辑:内容类型设置为application/json,编码为UTF-8
在控制器上设置断点表明POST参数未正确反序列化为Paylod
对象,参数为null
我可能缺少什么?您需要将请求内容类型指定为
application/json
编辑
使用以下评论中的信息完成回复:
如果使用REST控制台的“请求参数”而不是“请求有效负载原始主体”,则即使指定application/JSON
,也不会从这些参数生成JSON
您需要将原始JSON粘贴到原始正文字段中,如下所示:
您需要将请求内容类型指定为
application/json
编辑
使用以下评论中的信息完成回复:
如果使用REST控制台的“请求参数”而不是“请求有效负载原始主体”,则即使指定application/JSON
,也不会从这些参数生成JSON
您需要将原始JSON粘贴到原始正文字段中,如下所示:
事实上我是这样做的,plus编码设置为UTF-8。如果您使用REST控制台的“请求参数”而不是“请求有效负载原始体”,它将不会从中生成JSON。您需要将原始JSON粘贴到原始正文字段中,这就是我所缺少的。谢谢事实上我是这样做的,plus编码设置为UTF-8。如果您使用REST控制台的“请求参数”而不是“请求有效负载原始体”,它将不会从中生成JSON。您需要将原始JSON粘贴到原始正文字段中,这就是我所缺少的。谢谢
Request Url: http://localhost:8080/api/payload
Request Method: POST
Params: {
"Date": "2012.09.26",
"Command": "Hello"
}
{
"Date": "2012.09.26",
"Command": "Hello"
}