使用WCF开发REST服务

要点

  • 采用WebHttpBinding。
  • 加入WebHttpBehavior。
  • 若要跨域访问,要设置CrossDomainScriptAccessEnabled属性为true。不要设置其它的,如:JavascriptCallbackBehavior、enableWebScript 、AspNetCompatibilityRequirements等
  • 使用Fiddler进行测试



服务契约示例

    [Description("测试")]

    [ServiceContract]

    public interface IAccountJsonService : INotSecuredServiceContract

    {

        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]

        List<Account> GetAccountDataByGet();



        [WebInvoke(Method = "POST")]

        List<Account> GetAccountDataByPost();



        /// <example>调用方式:/SendMessageByGet1?message=aaa&value=3</example>

        [WebInvoke(Method = "GET")]

        string SendMessageByGet1(string message, string value);



        /// <example>调用方式:/SendMessageByGet/aaa/3</example>

        [WebInvoke(Method = "GET", UriTemplate = "/SendMessageByGet2/{message}/{value}")]

        string SendMessageByGet2(string message, string value);



        /// <example>调用方式:{"message":"aa","value":3}。另外不要忘了在HTTP头中加入“content-type: text/json content-length: 26”。BodyStyle特性:方法参数若是多个,必须对其进行Json包装</example>

        [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)]

        string SendMessageByPost(string message, int value);

    }





参考

一个通过JSONP跨域调用WCF REST服务的例子(以jQuery为例)

REST WCF

你可能感兴趣的:(REST)