REST WEB API:如何使Content-Type标头可选?

时间:2014-01-07 04:42:33

标签: c# rest asp.net-web-api

我有Web API,并希望内容类型可选。

目前,如果在调用REST(POST)方法时忽略了content-Type标头,则会抛出错误。

这就是我在Web API中定义路由的方法 -

routes.MapHttpRoute(
   name: "myMethodPost",
   routeTemplate: "api/{id}/Settings/{settings}",
   defaults: new { controller = "Settings", action = "updateSettings" },
   constraints: new { httpMethod = new HttpMethodConstraint("POST") }
);

调用此方法时 -

api/1/Settings/testSettings
method = "Post"

它抛出错误。但是在添加后 -

apiRequest.ContentType = "application/json";

工作正常。

现在,如何使Content-Type标头可选?

1 个答案:

答案 0 :(得分:2)

您可以在服务器上创建一个消息处理程序,如果缺少Content-Type,则将其设置为'application / json',并且长度为非零的正文。这样客户端就不必发送它。