基础拾遗

基础拾遗------特性详解

基础拾遗------webservice详解

基础拾遗------redis详解

基础拾遗------反射详解

基础拾遗------委托详解

基础拾遗------接口详解

基础拾遗------泛型详解

前言

  工作当中常用的服务接口有三个wcf,webservice和webapi.首先第一个接触的就是webservice,今天大致总结一下。

1.webservice概念相关

1.1.Web Service也叫XML Web Service WebService

  是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在 Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

1.2.XML:(Extensible Markup Language)扩展型可标记语言。

  面向短期的临时数据处理、面向万维网络,是Soap的基础。它被设计的宗旨是描述数据(XML),而非显示数据(HTML)。后面单独博客进行详细介绍。

1.3.Soap:(Simple Object Access Protocol)简单对象存取协议。

  是XML Web Service 的通信协议。其指导理念是“唯一一个没有发明任何新技术的技术”。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的 调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

  1. <?xml version="1.0"?>
  2. <soap:Envelope
  3. xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
  4. soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
  5.  
  6. <soap:Header>
  7. <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  8. soap:mustUnderstand="1">234
  9. </m:Trans>
  10. </soap:Header>
  11.  
  12. <soap:Body>
  13. <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
  14. <m:Item>Apples</m:Item>
  15. </m:GetPrice>
  16. </soap:Body>
  17. </soap:Envelope>

1.4.WSDL:(Web Services Description Language) Web服务描述语言

  WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

  • Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。
  • Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。
  • Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。
  • PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。
  • Binding - 特定端口类型的具体协议和数据格式规范的绑定。
  • Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。
  • Service- 相关服务访问点的集合。
  • WSDL 描述了 Web服务的三个基本属性:

    (1)服务所提供的操作

    (2)如何访问服务

    (3)服务位于何处(通过 URL 来确定就 OK 了)

1.5.UDDI (Universal Description, Discovery, and Integration)

  是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服 务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览 以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

2. .net webservice

  上面的理论知识就算您不清楚,想要使用webservice还是没有任何难度的,不信您往下看。

2.1.创建webservice(vs2013)

  2.1.1.新建一个webservice项目(文件->新建->项目->C#->Web服务应用程序)

  建完这个工程,我们将看到一个叫ServiceDome.asmx的文件,就先常见webfrom一样它类似与aspx,我们直接打开cs代码文件即可,asmx文件至今没考虑过他有什么用.如果你什么都还没做的话,将看见一个被注释掉的helloworld的WebMethod,把注释去掉,在运行,你就可以得 到最简单的webservice运行实例了.点击"helloworld"将执行其方法.显然,这个函数对我们的意义只在于宏观的了解了下web服务的写 法.

  2.1.2.WebMethodAttribute详解

  1. [WebMethod(Description="备注信息")]
  2. public string HelloWorld()
  3. {
  4. return "Hello World";
  5. }

  如上,WebMethodAttribute此特性是表示可以从远程 Web 客户端调用该方法。

  其中WebMethod包括以下6个属性

  (1)Description: 

    是对webservice方法描述的信息。就像webservice方法的功能注释,可以让调用者看见的注释。

  (2).EnableSession:

    指示webservice否启动session标志,主要通过cookie完成的,默认false。

  1. ;
  2. [WebMethod(EnableSession=true)]
  3. public int Count()
  4. {
  5. i=i+;
  6.  
  7. return i;
  8. }

  如上Count()回和保存的session类似把信息保留下来。

  (3)MessageName:

    主要实现方法重载后的重命名.

  1. [WebMethod]
  2. public int Add(int i, int j) {
  3. return i + j;
  4. }
  5. [WebMethod(MessageName="Add2")]
  6. public int Add(int i, int j, int k) {
  7. return i + j + k;
  8. }
  9. }

  (4).TransactionOption:

    指示 XML Web services 方法的事务支持。

  (5).CacheDuration:

    Web支持输出高速缓存,这样webservice就不需要执行多遍,可以提高访问效率,而CacheDuration就是指定缓存时间的属性。

  1. ;
  2. [WebMethod(EnableSession=)]
  3. public int Count()
  4. {
  5. i=i+;
  6. return i;
  7. }

  (6).BufferResponse:

    配置WebService方法是否等到响应被完全缓冲完,才发送信息给请求端。普通应用要等完全被缓冲完才被发送的!只有当已知 XML Web services 方法将大量数据返回到客户端时,才需要将 BufferResponse 设置为 false。对于少量数据,将 BufferResponse 设置为 true 可提高 XML Web services 的性能。当 BufferResponse 为 false 时,将对 XML Web services 方法禁用 SOAP 扩展名。

2.2.实现webservice

  特性说完就要说我们的webserviece服务接口的实现了,其实对于他的实现和我们实现一个类没有太大的区别。、

  1. [WebMethod]
  2. public string SynCardToDreams(int start, int end)
  3. {
  4. try
  5. {
  6. DateTime begin = DateTime.Now;
  7. UserSignService userService = new UserSignService();
  8. bool ret = userService.SynChroCardToDreams(start, end);
  9. DateTime endTime = DateTime.Now;
  10. double total = (endTime - begin).TotalMinutes;
  11. string retmsg = ret ? "同步成功" : "同步失败";
  12. return "本次同步用时 " + total + "分钟;" + retmsg;
  13.  
  14. }
  15. catch (Exception ex)
  16. {
  17. return "同步失败:" + ex.ToString();
  18. }
  19.  
  20. }

2.3.调用webservice

在要使用服务的项目处右击添加服务引用

然后在程序当中直接实例化调用此方法即可:

  1.   //调用方法
  2. TestServiceReference.TestServiceSoapClient testService = new TestServiceReference.TestServiceSoapClient();
  3. int result = testService.Add(1, 2);

前端调用

  1. <script type="text/javascript">
  2. $(function () {
  3. $.ajax({
  4. type: 'POST',
  5. url: 'TestService.asmx/ADD',
  6. data: '{ A: 4,B:4}',
  7. dataType: 'json',
  8. contentType: "application/json",
  9. success: function (data) {
  10. alert(data.d);
  11. }
  12. });
  13. });
  14. </script>

3.修改webservice服务地址:

3.1修改配置文件

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <configSections>
  4. </configSections>
  5. <system.serviceModel>
  6. <bindings>
  7. <basicHttpBinding>
  8. <binding name="PointStoreServiceSoap" />
  9. </basicHttpBinding>
  10. </bindings>
  11. <client>
  12. <endpoint address="http://localhost:25548/WebServiceDom.asmx"
  13. binding="basicHttpBinding" bindingConfiguration="PointStoreServiceSoap"
  14. contract="PointStoreService.PointStoreServiceSoap" name="PointStoreServiceSoap" />
  15. </client>
  16. </system.serviceModel>
  17. </configuration>

基础拾遗------webservice详解的更多相关文章

  1. 基础拾遗------redis详解

    基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...

  2. Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例)

    Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑配置文件(pml.xml)(我 ...

  3. (转)总结之:CentOS 6.5 MySQL数据库的基础以及深入详解

    总结之:CentOS 6.5 MySQL数据库的基础以及深入详解 原文:http://tanxw.blog.51cto.com/4309543/1395539 前言 早期MySQL AB公司在2009 ...

  4. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  5. Axis2开发webservice详解

    Axis2开发webservice详解 标签: javawebserviceAxis2 2015-08-10 10:58 1827人阅读 评论(0) 收藏 举报  分类: JAVA(275)  服务器 ...

  6. java基础之:详解内部类(转载)

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...

  7. AngularJS语法基础及数据绑定——详解各种数据绑定指令、属性应用

    AngularJS简单易学,但是功能强大.特别是在构建单页面应用方面效果显著.而 数据绑定 可以说是他被广泛使用的最主要的优点.他舍弃了对DOM的操作方式,一切都由AngularJS来自动更新视图,我 ...

  8. python 3.x 爬虫基础---http headers详解

    前言 上一篇文章 python 爬虫入门案例----爬取某站上海租房图片 中有对headers的讲解,可能是对爬虫了解的不够深刻,所以老觉得这是一项特别简单的技术,也可能是简单所以网上对爬虫系统的文档 ...

  9. 深度学习基础(CNN详解以及训练过程1)

    深度学习是一个框架,包含多个重要算法: Convolutional Neural Networks(CNN)卷积神经网络 AutoEncoder自动编码器 Sparse Coding稀疏编码 Rest ...

随机推荐

  1. CentOS 7 防火墙 firewall 的使用

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...

  2. Linux简单的日志审计

    生产环境日志审计解决方案 所谓的日志审计,就是记录所有系统及相关的用户行为,并且可以自动分析.处理.展示(包括文本或者录像) 1)     :通过环境变量以及rsyslog服务进行全部日志审计(信息太 ...

  3. nginx--->高并发优化

    在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题. nginx配置文件和内核参数的优化,如有不妥,敬请指出 一.nginx的配置优化 1)nginx进程数 ...

  4. 记一次ss故障

    本文主要参考: https://github.com/shadowsocks/shadowsocks shadowssocks 分为客户端和服务器端. 我们平时买的服务,使用是要用的是客户端. 如果你 ...

  5. CSS--background

    它的组合写法: background-color, background-image, background-repeat,backgroundattachment, background-posit ...

  6. Unity StrangeIoC框架

    Unity StrangeIoC框架  http://blog.csdn.net/y1196645376/article/details/52746251    

  7. select、poll、epoll之间的区别总结[整理]

    select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作.但select ...

  8. windows安装redis

    下载安装包,由于redis不提供windows版本,但是通过官网了解,如下: The Redis project does not officially support Windows. Howeve ...

  9. Oracle常用语法

    Oracle常用语句语法汇总 Oracle10g 1 第一章Oracle命令 a) 系统管理员连接 conn */* as sysdba b) 查询当前用户 show user c) 创建新用户 cr ...

  10. UML入门

    本文主要讲解uml的一些入门知识. uml:统一建模语言,uml通过图形化的表达对系统进行细致的划分,在开发前期有助于开发人员与开发人员之间交流,同时也能方便用户与开发者之间进行良好的反馈.利用uml ...