2011-11-01 29 views
3

我很難找到解決辦法,讓傳入的POST請求觸及我的服務聲明,除非通用的「application/xml」或「application/json」被設置爲請求的內容類型:供應商特定的MIME作爲傳入的WCF REST POST請求中的內容類型(例如application/vnd.company + xml)

由於我們使用自定義MIME類型,例如「application/vnd.company + xml」,這實際上應該是Content-Type頭的值。但顯然WCF無法從中得出請求格式。有誰知道這個解決方案嗎?

總之:我想

Content-Type: application/vnd.company+xml, and 
Content-Type: application/vnd.company+json 

分別映射傳入POST請求,XML和JSON,但截至目前,該服務將只響應當我發出帶有

POST請求
Content-Type: application/xml, or 
Content-Type: application/json 

平臺是.NET4和WCF。

+0

您不必使用自定義媒體類型來描述您的消息,只需將JSON-LD與REST特定的RDF詞彙表以及您的應用程序特定詞彙表一起使用即可。 – inf3rno

回答

1

使用WCF Web API而不是WCF REST。其中一個主要優點是它可以讓您靈活地使用任何您想要的媒體類型。

如果你真的被困在.NET 4中的WCF REST,那麼請將你的請求參數改爲流類型。這將允許您發佈任何你想要的數據。你需要自己照顧反序列化。

+0

謝謝,Darrel。但Web API仍處於預覽狀態。你會在生產代碼中使用它嗎?關於WCF REST/.NET4解決方案,是否可以堅持一種行爲來嗅探Content-Type頭並分別將RequestFormat設置爲WebMessageFormat.Xml/Json? – user1023810

+0

我會在WCF REST之前的產品代碼中使用WCF Web API。如果你確實知道WCF內部組件,你可能可以做這個開關,但我不會親自嘗試。 –

+1

再次感謝Darrel。畢竟我是爲了流類型。我們不僅可以處理自己選擇的內容類型,而且手動反序列化還可以控制返回給客戶的故障,比如,如果無效數據類型或非格式良好的XML被髮布到我們的服務中。 – user1023810

相關問題