免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

WCF簡單教程(11)REST調用-創新互聯

第十一篇:REST調用

創新互聯科技有限公司專業互聯網基礎服務商,為您提供內江服務器托管高防物理服務器租用,成都IDC機房托管,成都主機托管等互聯網服務。

上篇寫的是Ajax調用WCF,今天寫一篇如何以REST方式調用WCF服務。不知道REST是什么的同學,可以去google一下。對某些類型的應用,REST還是相當不錯的方式,所以專門寫一篇來說明一下開發方法。

老規矩,上代碼,直接在代碼注釋里講解。


1、服務端:

服務契約,我們定義CRUD4個方法(增查改刪),對應HTTP METHOD分別為PUT/GET/POST/DELETE:

  1. using
  2. using
  3. using//這個命名空間要求引入System.ServiceModel.Web.dll
  4. namespace
  5. "WCF.Demo"
  6. publicinterface
  7. //WebInvoke中標明REST的相關屬性,以這個方法為例,調用的Url是 ..../Data/key/data,HTTP方法是PUT,響應為Json格式(也可以換成xml)
  8. //這樣如果客戶端用PUT方法訪問 ..../Data/1/100,就會映射到CreateData方法上來,并且傳入key=1,data=100
  9. "Data/{key}/{data}""PUT"
  10. voidstringstring
  11. "Data/{key}""GET"
  12. stringstring
  13. "Data/{key}/{data}""POST"
  14. voidstringstring
  15. "Data/{key}""DELETE"
  16. voidstring

然后是實現類,這個簡單,沒什么可說的。

  1. using
  2. using
  3. using
  4. namespace
  5. //這個例子中用了Single Instance模式,這樣m_DataDict的值才能保留住
  6. publicclass
  7. privatestringstringnewstringstring
  8. publicvoidstringstring
  9. publicstringstring
  10. return"NOT FOUND"
  11. publicvoidstringstring
  12. publicvoidstring

配置文件最關鍵了,注意里面綠色的注釋部分:

  1. <?xmlversion"1.0"encoding"utf-8"?>
  2. <configuration>
  3. <system.serviceModel>
  4. <services>
  5. <servicename"Server.DataProvider">
  6. <!--必須使用webHttpBinding,而且要定義此endpoint的behaviorConfiguration(見后)-->
  7. <endpointaddress""binding"webHttpBinding"contract"Server.IData"behaviorConfiguration"restBehavior"/>
  8. <host>
  9. <baseAddresses>
  10. <addbaseAddress"http://localhost:8080/wcf"/>
  11. </baseAddresses>
  12. </host>
  13. </service>
  14. </services>
  15. <behaviors>
  16. <!--定義endpoint的behavior,webHttp節點表示啟用web方式訪問,這對REST是非常關鍵的-->
  17. <endpointBehaviors>
  18. <behaviorname"restBehavior">
  19. <webHttp/>
  20. </behavior>
  21. </endpointBehaviors>
  22. </behaviors>
  23. </system.serviceModel>
  24. </configuration>

最后發布服務,沒什么特殊的,和以前一樣:

  1. using
  2. using
  3. namespace
  4. class
  5. staticvoidstring
  6. usingnewtypeof
  7. "Running ..."

這個服務端沒有用IIS做HOST,直接用自己的進程做的宿主(當然了,本質還是http.sys在工作)。


2、客戶端

我們這回要用REST形式訪問服務端,所以不是普通意義上的WCF客戶端了,再也用不著那么麻煩的寫配置文件創建Channel或者代理了。

  1. using
  2. using
  3. namespace
  4. class
  5. staticvoidstring
  6. //用一個WebClient就可以搞定了
  7. new
  8. //以PUT方式訪問Data/1/100,會映射到服務端的CreateData("1", "100")
  9. "http://localhost:8080/wcf/Data/1/100""PUT"string
  10. //以GET方式訪問Data/1,會映射到服務端的RetrieveData("1"),應該返回"100"
  11. "http://localhost:8080/wcf/Data/1"
  12. //以POST方式訪問Data/1/200,會映射到服務端的UpdateData("1", "200")            
  13. "http://localhost:8080/wcf/Data/1/200""POST"string
  14. //再GET一次,應該返回"200"
  15. "http://localhost:8080/wcf/Data/1"
  16. //以DELETE方式訪問Data/1,會映射到服務端的DeleteData("1")
  17. "http://localhost:8080/wcf/Data/1""DELETE"string
  18. //再GET一次,應該返回"NOT FOUND"
  19. "http://localhost:8080/wcf/Data/1"

OK,運行一下客戶端,返回如下,和預期一致:

WCF簡單教程(11) REST調用

需要補充一下,如果用IIS做HOST,比如DataService.svc.cs是實現類,一定要在DataService.svc中加上Factory,如下:

  1. <%@ ServiceHost Language="C#""true""WebServer.DataService""DataService.svc.cs""System.ServiceModel.Activation.WebServiceHostFactory"

表明不是使用默認的ServiceHostFactory,而是適應WEB HTTP開發的WebServiceHostFactory。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網頁名稱:WCF簡單教程(11)REST調用-創新互聯
本文鏈接:http://m.newbst.com/article28/dpgojp.html

成都網站建設公司_創新互聯,為您提供網站導航外貿建站定制開發App開發軟件開發自適應網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站