我有Web API,並希望使內容類型可選。REST WEB API:如何使Content-Type標題可選?
當前,如果我在調用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頭可選?
爲什麼你想讓它成爲可選的?如果請求具有正文而不是內容類型標題,那麼Web API無法確定要爲反序列化請求正文選擇哪種格式化程序......您的確切場景是什麼? –
@KiranChalla,是的,你是對的....我在參數列表中有自定義類型,並且由於缺少ContentType而無法綁定參數。 –
沒有內容類型的實體不是一個實體,它只是一堆或隨機的1s和0s,它們毫無意義。爲什麼不修正客戶端沒有發送內容類型的錯誤,而不是引入服務器允許的錯誤? –