2014-02-26 29 views
1

返回JSON這是我目前的Web API應該是默認

GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "json", new MediaTypeHeaderValue("application/json")));    

GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "xml", new MediaTypeHeaderValue("application/xml"))); 

它工作正常,當我打電話API與這樣的查詢

for xml : http://localhost:49533/api/?type=xml 
for json: http://localhost:49533/api/?type=json 

,但我要的是JSON默認?那可能嗎?我想上面可供選擇,以及

+0

它應該已經返回JSON默認情況下。 – har07

+0

其默認返回xml – user570715

+0

當我這樣請求 - http:// localhost:49533/api /產品我得到XML – user570715

回答

2

內容協商看幾件事情在你的請求包括Accept報頭(也將contentType頭推斷返回的結果)。如果您的請求在accept頭中包含XML,那麼它將轉到XML。

下面是Chrome默認標頭,注意,它要求XML,因此網頁API將默認爲鍍鉻返回XML。

{Connection:keep-alive Accept:text/html,application/xhtml + xml,application/xml; q = 0.9,image/webp,/; q = 0.8 接受編碼:gzip,deflate,sdch Accept-Language:en-US,en; Q = 0.8 主機:本地主機:63586 的User-Agent:Mozilla的/ 5.0(Windows NT的6.1; WOW64)爲AppleWebKit/537.36(KHTML,例如Gecko)Chrome瀏覽器/ Safari瀏覽器33.0.1750.117/537.36 }

您可以選擇在應用程序中忽略接收頭,通過從格式化刪除它們:

config.Formatters.JsonFormatter.MediaTypeMappings.Clear(); 

添加您的查詢映射(同樣的路線爲XML格式)。

相關問題