![](https://csdnimg.cn/release/download_crawler_static/86368379/bg1.jpg)
第十一篇:REST 调用
上篇写的是 Ajax 调用 WCF,今天写一篇如何以 REST 方式调用 WCF 服务。不知道 REST 是什
么的同学,可以去 google 一下。对某些类型的应用,REST 还是相当不错的方式,所以专
门写一篇来说明一下开发方法。
老规矩,上代码,直接在代码注释里讲解。
1、服务端:
服务契约,我们定义 CRUD4 个方法(增查改删),对应 HTTP METHOD 分别为
PUT/GET/POST/DELETE:
1. using System;
2. using System.ServiceModel;
3. using System.ServiceModel.Web; //这个命名空间要求引入
System.ServiceModel.Web.dll
4.
5. namespace Server
6. {
7. [ServiceContract(Namespace = "WCF.Demo")]
8. public interface IData
9. {
10. //WebInvoke 中标明 REST 的相关属性,以这个方法为例,调用的 Url 是
..../Data/key/data,HTTP 方法是 PUT,响应为 Json 格式(也可以换成 xml)
11. //这样如果客户端用 PUT 方法访问 ..../Data/1/100,就会映射到 CreateData 方法
上来,并且传入 key=1,data=100
12. [OperationContract]
13. [WebInvoke(UriTemplate = "Data/{key}/{data}", Method = "PUT", Resp
onseFormat = WebMessageFormat.Json)]
14. void CreateData(string key, string data);
15.
16. [OperationContract]
17. [WebInvoke(UriTemplate = "Data/{key}", Method = "GET", ResponseFor
mat = WebMessageFormat.Json)]
18. string RetrieveData(string key);
19.
20. [OperationContract]
21. [WebInvoke(UriTemplate = "Data/{key}/{data}", Method = "POST", Res
ponseFormat = WebMessageFormat.Json)]
22. void UpdateData(string key, string data);
23.
24. [OperationContract]