Asp.net Web API實戰

工做中須要暴露一些功能,或者說API供其餘系統調用,其餘系統多是Winform,WPF,Asp.net或者是Mobile客戶端。固然能夠用Web Service或是WCF來實現,可是本身偏向於嘗試新的東西,因而,就打算用Asp.net Web API來實現,也來體驗一把RESTFull框架。初次使用,把大致過程記錄下來,美名曰「實戰」,實際算是入門指導吧。html

      Asp.net Web API是經過Http協議將API暴露給客戶端,不少東西與ASp.net MVC很類似,其實她自己就包含在Asp.net Mvc 4裏面的。下面開始實戰:git

  1. 安裝Asp.net Mvc 4,從這裏安裝:http://www.asp.net/mvc/mvc4。安裝時間大概半小時的樣子。支持VS 2010學習版。
  2. 新建項目,選擇「Asp.net MVC 4 Web Application」項目類型,而後選擇Web API:

3. 重點看一下Controller下面的ValuesController類,這個類暴露了如下API:

複製代碼

public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post(string value)
        {
        }

        // PUT api/values/5
        public void Put(int id, string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }

複製代碼

熟悉http協議的話,上面的很好懂了。F5運行,我用Chrome瀏覽器測試:github

這裏返回的是xml格式的,這是由於Chrome自動添加了"Accept:Application/Xml"請求頭(各位如何讓Chrome返回Json呢?)。默認返回Json格式。web

至於URL是如何路由的,熟悉MVC的應該很清楚了。看看App_Start/RouteConfig.cs,固然咱們能夠在這裏配置本身的路由。json

4. 客戶端如何調用服務器端的API:

一般咱們使用HttpClient類,能夠看看dudu老大寫的HttpClient + ASP.NET Web API, WCF以外的另外一個選擇windows

我這裏演示如何使用簡單的WebClient來調用,使用WebClient的緣由是:不像HttpClient,它不須要.net framework4.0。api

WebClient wc = new WebClient();
wc.Headers.Add("Accept:Application/Json"); //這一行不要,結果是同樣的
string json = wc.DownloadString("http://localhost:4391/api/values");
var ss= JavaScriptConvert.DeserializeObject<string[]>(json);

這裏Json解析使用的是第三方Newtonsoft.Json,我用的是很老的版本了。這裏下載最新版本。瀏覽器

這個第三方庫比微軟自帶的都要好用,並且很強大的,同時支持.net和Sivlerlight,聽說速度是最快的。服務器

Web Api是根據客戶端的Accept請求頭,自動返回相應格式的數據,默認是JSON格式。mvc

這裏咱們只演示了Get,若是用WebClient作Post的話,我簡單試了一下沒成功,post方法的value老是null。Google發現更好的解決方法是使用RestSharp,他同時支持.net/mono/silverlight/windowsphone。有時間研究下。

5. 實戰結束。:)

原文地址:http://www.cnblogs.com/slmk/archive/2012/08/09/2630691.html

 

物流,配貨,貨運,網站,論壇,交流,信息發佈
網站建設QQ:471226865

相關文章
相關標籤/搜索