我正在通过以下请求调用C#WebAPI:
Request URL: https://devserver/myapp/api/SaveSettings?debug=0
Request Method:POST
Status Code:202 Accepted
Request Headers
...
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
...
Form Data:
config:{"test":"test12"}
Response Headers:
...
Server: Microsoft-IIS/7.5
...
WebAPI应用程序代码为
public class SaveSettingsController : ApiController
{
[System.Web.Http.HttpGet]
[System.Web.Http.HttpPost]
public HttpResponseMessage PostComplex(MyModel update)
{
if (ModelState.IsValid)
{
return Request.CreateResponse(HttpStatusCode.Accepted,update.config.test);
}
}
}
虽然状态代码发送正确(这就是为什么我开始相信此代码已真正执行的原因),但内容始终为null,我不知道为什么。我还尝试了一个配置设置为字符串类型的模型,并且
return Request.CreateResponse(HttpStatusCode.Accepted,update.config);
但无济于事:它仍然返回null。
为什么是这样?我究竟做错了什么?
如果您在Web api中有一个post参数,则可以使用[FromBody]属性装饰它,如下所示:
[System.Web.Http.HttpGet]
[System.Web.Http.HttpPost]
public HttpResponseMessage PostComplex([FromBody] MyModel update)
{
if (ModelState.IsValid)
{
return Request.CreateResponse(HttpStatusCode.Accepted,update.config.test);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句