回頭想來,沒想到本身卻堅持下來了,EntityFramework系列終於所有完成了,給本身點個贊先。本系列將着手於Web API,關於一些基礎的介紹及定義就再也不敘述,請參考園友們文章,很是詳細,我也是在此基礎上步入學習的。html
咱們知道Web API是基於ASP.NET平臺構建RESTful應用程序的框架(關於RESTful請參考園友Liam Wang關於其詳細介紹),經過訪問在方法標記爲HttpPost、HttpGet、HttpPut等得知。瀏覽器
咱們知道Web API默認輸出的格式爲JSON,可是當咱們進行測試時大部分瀏覽器輸出的都是XML格式,這種狀況真是使人唏噓不已。下面咱們就以火狐爲例,同時利用它的Fire Bug進行監控。咱們利用測試數據,並進行訪問以下:服務器
咱們利用Fire Bug查看其報文頭信息來進行分析,以下:app
大部分瀏覽器發送的都是以下請求頭信息:框架
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
或許有些瀏覽器的可能請求信息爲以下:學習
Accept: text/html,application/xhtml+xml,*/*;q=0.9
大部分瀏覽器中這樣一樣也是以XML格式打開,可是平時以爲在兼容方面很是噁心的IE 9模式下倒是JSON,固然既然能以JSON打開確定是沒有包括application/xml了。測試
或許有些瀏覽器的可能請求信息爲以下:spa
Accept: text/html, application/xhtml+xml, */*
這更加沒必要多說了,這更加敏感的就暴露出要以XML格式輸出了。code
上述說了那麼多都是以XML格式輸出,若是在項目中須要大量的以JSON格式輸出的數據的話,那麼確定會用到Web API了,我這才入門就是以這種方式回饋我,還可以好好的玩耍嗎,看到園中大部分都是介紹大部分瀏覽器都是以XML格式輸出的,可是卻沒給出一個解決方案,我的感受有點欠妥,因而我就瞭解了下,經過上述咱們知道請求過來的請求頭信息是要和咱們註冊的格式進行匹配的並響應對應的格式,那麼咱們徹底能夠在匹配時作一點手腳將其請求過來的XML格式進行過濾不就ok了嗎,此時就要用到咱們Web API的配置文件 WebApiConfig 中的 Register 方法來進行過濾便可。orm
var formatters = config.Formatters.Where(formatter =>
formatter.SupportedMediaTypes.Where(media =>
media.MediaType.ToString() == "application/xml" || media.MediaType.ToString() == "text/html").Count() > 0) //找到請求頭信息中的介質類型
.ToList();
foreach (var match in formatters)
{
config.Formatters.Remove(match); //移除請求頭信息中的XML格式
}
檢驗一下 ,輸出成功:
至此Web API算是入門吧,一步步來,不着急,有問題就解決,多花點時間也是值得的,你說呢!!!