日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCFWebAPI輕松實現(xiàn)REST

先體驗一下,如果沒有 WCF Web API,直接用 WCF 實現(xiàn) REST 有多麻煩:

沿河網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),沿河網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為沿河千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的沿河做網(wǎng)站的公司定做!

1. 創(chuàng)建 WCF 服務(wù)(ServiceContract)。

2. 創(chuàng)建 .svc 文件指向該 WCF 服務(wù)。

3. 在 web.config 中添加/  配置,并將 binding 設(shè)置為 webHttpBinding,示例配置如下:

 
 
 
  1.  
  2.      
  3.     
  4.                 contract="CNBlogs.OpenAPI.Service.INewsRestService"   
  5.                 behaviorConfiguration="RESTFul" /> 
  6.      
  7.  

4. 在 web.config 中添加 / 配置,并在其中添加,在第3步的配置中添加該behaviorConfiguration(比如上面代碼中的behaviorConfiguration="RESTFul"),示例配置如下:

 
 
 
  1.  
  2.      
  3.          
  4.      
  5.  

5. 在 OperationContract 方法上增加 WebInvoke 屬性,示例代碼如下:

 
 
 
  1. [OperationContract]  
  2. [WebInvoke(Method = "GET",  
  3.     UriTemplate = "News/Recent/{itemcount}",  
  4.     ResponseFormat = WebMessageFormat.Xml)  
  5. ]          
  6. IQueryable GetRecentNews(int itemcount); 

上面的5步已經(jīng)夠麻煩了。開始以為到此就可以收工了,哪知不運行不知道,一運行嚇一跳:

 
 
 
  1. Operation 'GetRecentNews' in contract 'INewsRestService' has a path variable named 'itemcount' which does not have type 'string'.    
  2. Variables for UriTemplate path segments must have type 'string'. 

參數(shù)竟然不能用int類型,必須要用 string。只能望 WCF 心嘆,不得不進入第6步。

6. 將 int 改為 string
 

 
 
 
  1. IQueryable GetRecentNews(string itemcount); 

這是純 WCF 實現(xiàn) REST 的表演節(jié)目,節(jié)目名稱叫“ WCF 實現(xiàn) REST 六步走”,表演得分6分。

接下來,我們看看 WCF Web API 的表演

(如果不知道 WCF Web API 是何方神圣,請看演員介紹http://wcf.codeplex.com/wikipage?title=WCF%20HTTP)

1. 在提供 REST 服務(wù)的方法上增加 [WebGet(UriTemplate = "")] 屬性,示例代碼如下:

 
 
 
  1. [ServiceContract]  
  2. public class NewsRestService  
  3. {  
  4.     [WebGet(UriTemplate = "{itemcount}")]  
  5.     public IQueryable GetRecentNews(int itemcount)  
  6.     {   
  7.         return newsList.AsQueryable();  
  8.     }   

2. 在 Global.asax 的 Application_Start 中添加路由,示例代碼如下:

 
 
 
  1. protected void Application_Start(object sender, EventArgs e)  
  2. {  
  3.     var config = new HttpConfiguration() ;  
  4.     RouteTable.Routes.Add(new ServiceRoute("news/recent",  
  5.         new HttpServiceHostFactory { Configuration = config },  
  6.         typeof(NewsRestService)));  

注:需要通過 NuGet 添加對 WebApi.All 的引用。news/recent 就是 REST 訪問網(wǎng)址。

收工!只需兩步就實現(xiàn) REST,WCF Web API 的表演得分2分。

2 : 6,WCF Web API 大獲全勝?。ǚ?jǐn)?shù)少的怎么反而獲勝?這是代碼世界,不是現(xiàn)實世界,程序員說了算,誰的代碼少,誰就獲勝)

小結(jié)
WCF Web API 是 “First-class programming model for HTTP in WCF”,而 HTTP 是 Web 世界的通行證,Web API 可以讓我們更輕松地暢游于 Web 編程世界。

實現(xiàn) REST 只是 WCF Web API 小試牛刀,我們還可以不用修改任何服務(wù)端代碼,只改變客戶端請求的方式,就可以返回不現(xiàn)類型的數(shù)據(jù)。
比如:

1)將 HTTP Header 中的 Accept 改為 “application/json”,返回的就是 JSON 數(shù)據(jù)。

2)通過 Url 參數(shù)發(fā)起 OData 查詢(比如“?$top=4&$orderby=Title” ),服務(wù)器收到請求后,會對返回結(jié)果進行 LINQ 查詢(因此示例代碼中的返回值類型是IQueryable)。

原文:http://www.cnblogs.com/dudu/archive/2011/10/27/wcf_web_api.html

【編輯推薦】

  1. 百度地圖API之如何制作公交導(dǎo)航
  2. 走進Windows線程同步API
  3. 谷歌拼音輸入法擴展API開發(fā)指南
  4. 新浪微博API開發(fā)簡介之用戶授權(quán)(PHP基礎(chǔ)篇)
  5. 百度地圖API開發(fā)指南

網(wǎng)頁名稱:WCFWebAPI輕松實現(xiàn)REST
文章分享:http://m.5511xx.com/article/cococji.html