日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Asp.net Web API实战

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net Web API实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 工作中需要暴露一些功能,或者說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里面的。下面開始實戰:

  • 安裝Asp.net Mvc 4,從這里安裝:http://www.asp.net/mvc/mvc4。安裝時間大概半小時的樣子。支持VS 2010學習版。

  • 新建項目,選擇“Asp.net MVC 4 Web Application”項目類型,然后選擇Web API:

  • ?

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

    public class ValuesController : ApiController{// GET api/valuespublic IEnumerable<string> Get(){return new string[] { "value1", "value2" };}// GET api/values/5public string Get(int id){return "value";}// POST api/valuespublic void Post(string value){}// PUT api/values/5public void Put(int id, string value){}// DELETE api/values/5public 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. 實戰結束。:)

    ?

    總結

    以上是生活随笔為你收集整理的Asp.net Web API实战的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。