我是新來的web api,我需要爲客戶端創建一個服務器。我無法控制客戶 - 不能改變一件事。使用c#web api與替代內容類型
客戶端在POST主體中發送一個html封裝的json請求。但是,內容類型可能會有所不同。我需要做些什麼來讓我的ApiController處理不同的內容類型?
我是新來的web api,我需要爲客戶端創建一個服務器。我無法控制客戶 - 不能改變一件事。使用c#web api與替代內容類型
客戶端在POST主體中發送一個html封裝的json請求。但是,內容類型可能會有所不同。我需要做些什麼來讓我的ApiController處理不同的內容類型?
在底層,Web Api支持內容協商機制根據HTTP請求中的標頭Content-Type
自動選擇正確的格式化程序。
默認情況下,內容協商支持三種格式化程序:json
,xml
和form-urlencoded data
。如果找不到格式化程序,客戶端將收到HTTP錯誤406(不可接受)。
查看更多:
如果你需要允許Web API支持另一個Content-Type
,您可以編寫自己的自定義格式:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/media-formatters
感謝。最後我用這樣的: 公共HttpResponseMessage郵報(HttpRequestMessage R) { } 這讓我可以訪問原始XML要到,然後我可以解析。我相信這不是「正確」的方式 - 但它適用於我 – user789235