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

基础拾遗

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

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

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

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

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

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

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

基础拾遗-----依赖注入

基础拾遗-----数据注解与验证

基础拾遗-----mongoDB操作

基础拾遗----RabbitMQ

前言

  工作当中常用的服务接口有三个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。

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"><soap:Header><m:Trans xmlns:m="http://www.w3schools.com/transaction/"soap:mustUnderstand="1">234</m:Trans>
</soap:Header><soap:Body><m:GetPrice xmlns:m="http://www.w3schools.com/prices"><m:Item>Apples</m:Item></m:GetPrice>
</soap:Body>
</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文档元素的结构图
  • 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详解

[WebMethod(Description="备注信息")]   public string HelloWorld()   {   return "Hello World";   } 

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

  其中WebMethod包括以下6个属性

  (1)Description: 

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

  (2).EnableSession:

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

 

public static int i=0;
[WebMethod(EnableSession=true)]
public int Count()
{
i=i+1;return i;
} 

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

  (3)MessageName:

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

[WebMethod]
public int Add(int i, int j) {
return i + j;
}
[WebMethod(MessageName="Add2")]
public int Add(int i, int j, int k) {
return i + j + k;
}
} 

  (4).TransactionOption:

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

  (5).CacheDuration:

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

public static int i=0;
[WebMethod(EnableSession=true,CacheDuration=30)]
public int Count()
{
i=i+1;
return i;
}

  (6).BufferResponse:

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

2.2.实现webservice

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

        [WebMethod]public string SynCardToDreams(int start, int end){try{DateTime begin = DateTime.Now;UserSignService userService = new UserSignService();bool ret = userService.SynChroCardToDreams(start, end);DateTime endTime = DateTime.Now;double total = (endTime - begin).TotalMinutes;string retmsg = ret ? "同步成功" : "同步失败";return "本次同步用时 " + total + "分钟;" + retmsg;}catch (Exception ex){return "同步失败:" + ex.ToString();}}

2.3.调用webservice

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

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

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

前端调用

<script type="text/javascript">$(function () {$.ajax({type: 'POST',url: 'TestService.asmx/ADD',data: '{ A: 4,B:4}',dataType: 'json',contentType: "application/json",success: function (data) {alert(data.d);}});});
</script>

 3.修改webservice服务地址:

3.1修改配置文件

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  <configSections>  </configSections>  <system.serviceModel>  <bindings>  <basicHttpBinding>  <binding name="PointStoreServiceSoap" />  </basicHttpBinding>  </bindings>  <client>  <endpoint address="http://localhost:25548/WebServiceDom.asmx"  binding="basicHttpBinding" bindingConfiguration="PointStoreServiceSoap"  contract="PointStoreService.PointStoreServiceSoap" name="PointStoreServiceSoap" />  </client>  </system.serviceModel>  
</configuration> 

 

转载于:https://www.cnblogs.com/kmonkeywyl/p/5726035.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南京打造大数据创新孵化平台

9月9日上午&#xff0c;南京微软云暨移动应用孵化平台在南京开发区新港高新园揭牌运营&#xff0c;项目创业大赛同步启动。 据悉&#xff0c;南京微软云暨移动应用孵化平台将打造以“云物大智”产业为核心的创新创业孵化平台。平台代理总经理童雪松介绍&#xff0c;平台汇集了强…

react控制组件中元素_React Interview问题:浏览器,组件或元素中呈现了什么?

react控制组件中元素by Samer Buna通过Samer Buna React Interview问题&#xff1a;浏览器&#xff0c;组件或元素中呈现了什么&#xff1f; (React Interview Question: What gets rendered in the browser, a component or an element?) **技巧问题** (** Trick Question *…

java gc时自动收dump_Full GC分析:设置Java VM参数实现在Full GC前后自动生成Dump

本文讲解了如何设置JavaVM参数实现在FullGC前后自动生成Dump。共有三个VM参数需要设置&#xff1a;HeapDumpBeforeFullGC 实现在Full GC前dump。HeapDumpBeforeFullGC 实现在Full GC后dump。HeapDumpPath 设置Dump保存的路径设置这些参数的方法&#xff0c;这里总结了四种&…

jquery插件dataTables自增序号。

dataTables官网提供了一种方式&#xff0c;使用后没有达到预期效果&#xff08;js报错&#xff09;&#xff0c;没有深究原因。如果需要&#xff0c;可以按照下面的方式来。 1 $(#dataList).dataTable({2 "language": {3 "sProcessing&…

Maven使用详解

1、maven介绍&#xff1a; 2、pom.xml文件理解&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schema…

诺基亚报告称:到2020年北美电子邮件流量占比将跌至7%

日前&#xff0c;诺基亚贝尔实验室下属贝尔实验室咨询部门&#xff08;Bell Labs Consulting&#xff09;发布研究报告称&#xff0c;在北美&#xff0c;千禧一代青少年和青壮年消费群体正逐渐壮大&#xff0c;受其驱动的视频通信流量占比将由47%增至86%。随着视频通话和视频会…

开源贡献 计算_我的第一个Hacktoberfest-第一次为开源做贡献的经验

开源贡献 计算by Sibylle Sehl通过Sibylle Sehl 我的第一个Hacktoberfest-第一次为开源做贡献的经验 (My First Hacktoberfest — Experiences of Contributing to Open Source as a First Timer) Contributing to Open Source and projects can seem like a daunting process…

java web junit_如何使用junit测试javaweb工程

一:创建一个测试类,建议将测试类单独放在一个包中(在 maven 项目里有测试类专门的存放位置),新建一个Junit Test Case类,下一步 测试类的命名建议是你将要测试的类名Test,然后点 Browse, 你可以选择要进行测试的类(一般选择 Service, 因为 Service 关心的是业务需求),用这种方式…

文件系统及程序的限制关系: ulimit

想像一个状况&#xff1a;我的 Linux 主机里面同时登陆了十个人&#xff0c;这十个人不知怎么搞的&#xff0c; 同时打开了 100 个文件&#xff0c;每个文件的大小约 10MBytes &#xff0c;请问一下&#xff0c; 我的 Linux 主机的内存要有多大才够&#xff1f; 1010010 10000…

java代码_Java 代码实现排序算法

阅读本文约需要8分钟 大家好&#xff0c;我是你们的导师&#xff0c;我每天都会在这里给大家分享一些干货内容(当然了&#xff0c;周末也要允许老师休息一下哈)。上次老师跟大家分享了下SpringBootGradle MyBatisPlus3.x搭建企业级的后台分离框架的相关知识&#xff0c;今天跟大…

移动游戏市场Testin云测占有率超过90%

《王者荣耀》、全民K歌、美团大众、共享单车……越来越多的爆款应用占据着我们的手机桌面&#xff0c;也驱动着创业者不断发掘新的移动应用和商业模式&#xff0c;却鲜有人留意到&#xff0c;由移动应用催生出来的APP测试市场。 “现在用户获取成本是几年前的几十倍&#xff0c…

java 拆箱_Java自动装箱拆箱

一、装箱、拆箱定义如果一个int型量被传递到需要一个Integer对象的地方&#xff0c;那么&#xff0c;编译器将在幕后插入一个对Integer构造方法的调用&#xff0c;这就叫做自动装箱。而如果一个Integer对象被放到需要int型量的地方&#xff0c;则编译器将幕后插入一个队intValu…

我们如何使用CircleCI 2.0来构建Angular应用并将其部署到AWS S3

by Marius Lazar通过马里乌斯拉扎尔(Marius Lazar) 我们如何使用CircleCI 2.0来构建Angular应用并将其部署到AWS S3 (How we used CircleCI 2.0 to build and deploy an Angular app to AWS S3) In today’s world, continuous integration and deployment (CI & CD) is a…

携手助力新型智慧城市建设和科技创新发展

2017年5月9日&#xff0c;三门峡市政府与北京航天控制仪器研究所、溢思得瑞科技创新集团战略合作协议签约仪式举行&#xff0c;共同推动三门峡市新型智慧城市建设和科技创新发展。 市委书记刘南昌&#xff0c;市委常委、宣传部部长吕挺琳&#xff0c;副市长李琳&#xff0c;市城…

在采用vue-cli Post Get

需要依赖插件 vue-resource npm install vue-resource --save https://cn.vuejs.org/v2/cookbook/using-axios-to-consume-apis.html 采用axios一样可以取数值 new Vue({ el: #app, data () { return { info: null } }, mounted () { axios .get(https://api.coindesk.com/v1/b…

优秀的开源项目C_适合提高C/C++、网络编程能力的开源项目!不要错过,赶紧收藏...

我们学习每一个编程语言都是有一个项目实战的过程&#xff0c;而对于开发类的编程语言&#xff0c;除了适当的做项目程序外&#xff0c;学习了解其他的开源项目更是一个关键&#xff0c;就比如我们的C/C编程语言的学习。前阵子有一个小伙伴就问到我&#xff0c;我学好C/C基础后…

Opencv分水岭算法——watershed自动图像分割用法

分水岭算法是一种图像区域分割法&#xff0c;在分割的过程中&#xff0c;它会把跟临近像素间的相似性作为重要的参考依据&#xff0c;从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓&#xff0c;封闭性是分水岭算法的一个重要特征。 其他图像分割…

单变量线性回归模型_了解如何为单变量模型选择效果最好的线性回归

单变量线性回归模型by Bjrn Hartmann比约恩哈特曼(BjrnHartmann) 找出哪种线性回归模型最适合您的数据 (Find out which linear regression model is the best fit for your data) Inspired by a question after my previous article, I want to tackle an issue that often c…

java javax.xml.ws_如何通过javax.xml.ws.Service进行调用

在Eclipse中创建了一个新的标准java 7项目,并成功设法获取javax.xml.ws.Service的实例,如下所示&#xff1a;String wsdlURL "http://example.com:3000/v1_0/foo/bar/SomeService?wsdl";String namespace "http://foo.bar.com/webservice";String servi…

汉能:让人类像叶绿素一样利用太阳能

6月初&#xff0c;一批在车筐里同时标识了摩拜“Mobike”和汉能“Hanergy”的摩拜单车在北京投入使用。这是由汉能与摩拜合作开发的第一批装有汉能薄膜太阳能组件的共享单车。 这批共享单车所装载的5.5瓦的汉能MiaSol的柔性薄膜太阳能组件&#xff0c;将为摩拜车载智能锁中内置…