wcf Restful编程五

Wcf rest编程

Restful

一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。(关于这种编程风格大家可以百度下)

Wcf

前面已经讲过,但自己书中不会创建一个restful风格的服务,最近看到一份外文博客分享给大家,这里这是创建,具体原理,我能懂了再分享个大家。

Step1

新建wcf服务应用程序

Step2

添加新建项

Step3修改

修改接口

[ServiceContract]

    public interface IRestService

    {

        [WebInvoke(Method = "GET",

           ResponseFormat = WebMessageFormat.Xml,

           BodyStyle = WebMessageBodyStyle.Wrapped,

           UriTemplate = "xml/{id}")]

        string XMLData(stringid);

        [WebInvoke(Method = "Get",

            ResponseFormat = WebMessageFormat.Json,

               BodyStyle = WebMessageBodyStyle.Wrapped,

               UriTemplate = "Json/{id}")]

        string JsonDate(stringid);

    }

实现方法

  public class RestService : IRestService

    {
        public stringXMLData(string id)

        {

            return "you requestproduce" + id;

        }

        public stringJsonDate(string id)

        {

            return "you requestproduce" + id;

        }

    }

修改XML文档

<system.serviceModel>

   <behaviors>

     <serviceBehaviors>

       <behaviorname="ServiceBehavior">

         <!--为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->

         <serviceMetadatahttpGetEnabled="true"/>

         <!--要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->

         <serviceDebugincludeExceptionDetailInFaults="false"/>

       </behavior>

     </serviceBehaviors>

     <endpointBehaviors>
       <behaviorname="web">
         <webHttp/>
       </behavior>
     </endpointBehaviors>
   </behaviors>

   <services>
     <servicename="Restful.RestService"behaviorConfiguration="ServiceBehavior">
       <endpointaddress=""binding="webHttpBinding"contract="Restful.IRestService"behaviorConfiguration="web">
       </endpoint>
     </service>
   </services>

   <serviceHostingEnvironmentmultipleSiteBindingsEnabled="true" />

 </system.serviceModel>

运行

总结

慢慢多学,天天学。走编程解决问题。

时间: 2024-11-25 10:35:15

wcf Restful编程五的相关文章

WCF RestFul例子

这里没有理论上的东西,仅仅是做下记录.我这个例子偷懒下了,直接在VS2008里面建了个WCF服务应用程序 一.接口,用WebGet的时候需要添加命名空间:System.ServiceModel;System.ServiceModel.Web; [ServiceContract] public interface IEmployeeService { [WebGet(UriTemplate = "employees", ResponseFormat = WebMessageFormat.

WCF服务编程 读书笔记——第1章 WCF基础(1)

第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Binding).契约(Contract)和终结点(Endpoint):了解如何托管服务,如何编写客户端代码:了解WCF的相关主题,诸如进程内托管(In-Proc Hosting)以及可靠性的实现.即使你已经熟知WCF的基本概念,仍然建议你快速浏览本章的内容,它不仅能够巩固你的已有知识,而且本章介绍的一

wcf服务编程(二)

地址:      1.命名管道:用于同一台机器的跨进程通讯.URL表示方式为:net.pipe://  ;由于是在同一台机器的不同进程间通讯,所以不用定义端口号. wcf服务编程(二)

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]

原文:WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇] 在<上篇>中,我通过使用Delegate的方式解决了服务调用过程中的异常处理以及对服务代理的关闭.对于<WCF技术剖析(卷1)>的读者,应该会知道在第7章中我通过类似于AOP的方式解决了相似的问题,现在我们来讨论这个解决方案. 通过<服务代理不能得到及时关闭会有什么后果?>的介绍,我们知道了及时关闭服务代理的重要意义,并且给出了正确的编程方式.如果严格按照上面的编程方式,就意味着对于每一个服务调用,都要

Win32 Windows编程 五

一 Win32消息机制 1 消息机制 过程驱动:程序是按照我们预先定义好的顺序执行,每执行一步,下一步都已经按照预定的顺序继续执行,直到程序结束 事件驱动: 程序的执行顺序是无序的.某个事件点所执行的代码,是由外界通知.由于我们无法决定用户执行顺序,所以代码的执行也是无序 Win32的消息机制 - 事件驱动 2 Win32消息程序 2.1 Win32 窗口注册 2.2 Win32窗口创建 2.3 Win32消息循环 2.3.1 GetMessage BOOL GetMessage( LPMSG

Linux网络编程 五种I/O 模式及select、epoll方法的理解

Linux网络编程 五种I/O 模式及select.epoll方法的理解 web优化必须了解的原理之I/o的五种模型和web的三种工作模式 五种I/O 模式--阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/OLinux网络编程 五种I/O 模式及select.epoll方法的理解

WCF分布式开发步步为赢(14):WCF安全编程--基本概念

WCF安全机制是个非常复杂的问题,因为涉及的知识点较多,所以今天这个文章,会分析进行WCF安全开发应该了解的哪些知识点.如何查看资料.为了更好地理解WCF安全相关知识,我把WCF安全机制主要知识点整理为图表.本章以介绍WCF安全机制的基础概念为主.  要学习WCF安全编程,你应该学习什么首先掌握什么基础知识?很多时候会因为缺乏系统的安全概念,在进行WCF安全编程开发的时候,遇到很多问题,比如所证书,这个概念相信很多初学者第一次接触的时候花费了很多时间.我当时在做WSE安全开发的时候就查阅了很多资

WCF服务编程 读书笔记——第1章 WCF基础(2)

续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于HTTPGET的元数据,但需要显式地添加服务行为( Behavior)以支持这一功能.本书后面的章节会介绍行为的相关知识.现在,我们只需要知道行为属于服务的本地特性,例如是否需要基于HTTP-GET交换元数据, 就是一种服务行为.我们可以通过编程方式或管理方式添加行为.在例 1 - 10 演示的宿主应

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]

原文:WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇] 在进行基于会话信道的WCF服务调用中,由于受到并发信道数量的限制,我们需要及时的关闭信道:当遇到某些异常,我们需要强行中止(Abort)信道,相关的原理,可以参考我的文章<服务代理不能得到及时关闭会有什么后果?>.在真正的企业级开发中,正如我们一般不会让开发人员手工控制数据库连接的开启和关闭一样,我们一般也不会让开发人员手工去创建.开启.中止和关闭信道,这些工作是框架应该完成的操作.这篇文章,我们就来介绍如果通过一些编程技巧,