Asp.net Web API實戰

來源:互聯網
上載者:User

工作中需要暴露一些功能,或者說API供其他系統調用,其他系統可能是Winform,WPF,Asp.net或者是Mobile用戶端。當然可以用Web Service或是WCF來實現,但是自己偏向於嘗試新的東西,於是,就打算用Asp.net Web API來實現,也來體驗一把RESTFull架構。初次使用,把大體過程記錄下來,美名曰“實戰”,實際算是入門指導吧。

      Asp.net Web API是通過Http協議將API暴露給用戶端,很多東西與ASp.net MVC很相似,其實她本身就包含在Asp.net Mvc 4裡面的。下面開始實戰:

  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瀏覽器測試:

這裡返回的是xml格式的,這是因為Chrome自動添加了"Accept:Application/Xml"要求標頭(各位如何讓Chrome返回Json呢?)。預設返回Json格式。

至於URL是如何路由的,熟悉MVC的應該很清楚了。看看App_Start/RouteConfig.cs,當然我們可以在這裡配置自己的路由。

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

通常我們使用HttpClient類,可以看看dudu老大寫的HttpClient + ASP.NET Web API, WCF之外的另一個選擇

我這裡示範如何使用簡單的WebClient來調用,使用WebClient的原因是:不像HttpClient,它不需要.net framework4.0。

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格式。

這裡我們只示範了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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.