Web Service 编程第五章讲稿_第1页
Web Service 编程第五章讲稿_第2页
Web Service 编程第五章讲稿_第3页
Web Service 编程第五章讲稿_第4页
Web Service 编程第五章讲稿_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WebService编程

------C#.NET第五章WebService基础本章要点WebService体系结构:WebService是自包含\模块化的应用程序,它可以在网络(通常称为Web)中被描述、发布、查找以及调用。实例介绍:本章通过两个实例的分析,帮助读者及时应用学习的知识,更快更好地掌握WebService的开发。Web服务简介Web服务的定义Web服务是可以使用标准Internet协议进行访问的可编程应用程序逻辑基于Internet技术实现可以重复使用的黑匣功能是未来分布式应用程序的发展方向XMLWebService的定义XMLWebService实现了在异类系统之间以XML消息的形式进行数据交换远程访问数据和应用程序逻辑并不是新的技术,但以松耦合的方式执行该操作却是一个全新的概念在客户端和服务器之间要求接收方可以理解收到的消息,客户端和服务器共同遵守一个协定(通常在Web服务中使用WSDL和XSD),然后通过在指定的传输协议(例如HTTP)之上生成遵守该协定的消息来进行通信使用文本格式(如XML)的灵活性使消息交换随时间的推移以一种松耦合的方式进化成为可能Web服务的功能和优点黑匣功能使用户不需要了解服务具体是如何实现的功能的粒度没有限制,大型和小型系统都可以使用既可以访问静态资源也可以访问动态资源便于和其他Web服务集成平台无关,互操作性强支持多种语言把现有系统改造为Web服务比较容易全部采用业界标准而不是厂商标准TCP/IPSystem.Net.SocketsSocketsHTTPXMLorBinaryFormatsSOAPSystem.Net.SocketsSystem.NetSystem.Runtime.RemotingSystem.Web.ServicesWeb技术栈与.NET面向服务的体系结构服务代理服务提供者服务消费者发布查找绑定面向服务的体系结构的组成部分服务提供者网络中负责提供软件服务接口、实现特定功能的节点服务消费者网络中使用服务提供者定义的接口,实现业务解决方案的节点服务代理网络中负责存储服务描述,并帮助服务消费者定位服务的节点各组成部分间的基本操作过程服务的发布服务提供者把服务发布到服务代理,包括服务接口定义、服务提供者位置以及其他相关文件服务的查找服务消费者在服务代理那里查找需要的服务服务的绑定服务消费者绑定由服务提供者提供的服务,这个过程包括提供商对消费者的身份验证Web服务务体体系系结结构构简简介介UDDI(Web服务代理)Web服务提供者Web服务消费者发布查找绑定InternetWeb服务务是是面面向向服服务务体体系系结结构构的的具具体体实实现现UDDI任意消费者SOAPSOAPSOAPIISWeb服务Web服务务体体系系结结构构的的组组成成部部分分Web服务务的的服服务务提提供供者者由ASP.NET页面面来来实实现现,,扩扩展展名名是是.asmxWeb服务务的的服服务务代代理理UDDI提供供的的目目录录服服务务Web服务务的的服服务务消消费费者者采用用SOAP或HTTP协议议与与服服务务提提供供者者进进行行通通信信,,并并且且支支持持必必要要的的安安全全身身份份验验证证Web服务务体体系系结结构构中中各各部部分分的的功功能能Web服务务提提供供者者Web服务务消消费费者者Web服务务代代理理Web服务务提提供供者者Web服务务可以以运运行行在在IISWeb服务务器器上上.NET公共共语语言言运运行行库库Web服务务提提供供者者的的例例子子IIS与Web服务务IIS提供供对对HTTP协议议的的侦侦听听IIS可以以通通过过使使用用ISAPI体系系结结构构来来同同时时提提供供多多个个独独立立的的Web服务务,,其其中中ISAPI起到到分分选选器器的的作作用用,,可可以以根根据据客客户户端端访访问问文文件件的的后后缀缀名名,,将将不不同同类类型型的的请请求求定定向向到到不不同同的的应应用用程程序序来来进进行行处处理理IIS有完完整整的的安安全全结结构构,,可可以以提提供供身身份份验验证证和和数数据据加加密密等等多多种种安安全全服服务务Web服务务消消费费者者最低低功功能能要要求求可以以使使用用该该服服务务支支持持的的协协议议来来调调用用服服务务提提供供者者的的Web服务务接接口口在消消息息发发往往服服务务提提供供者者前前进进行行正正确确的的格格式式化化服务务定定位位不使使用用硬硬编编码码形形式式,,可可以以动动态态定定位位代理理异步步调调用用消费费者者在在等等待待服服务务完完成成的的同时时可可以以处处理理其其他他任任务务Web服务务消消费费者者的的示示例例代理理的的任任务务负责责处处理理底底层层的的协协议议解析析字字节节流流以以提提取取数数据据验证证入入站站数数据据流流构造造出出站站数数据据包包Web服务务代代理理在提提供供商商和和代代理理之之间间完完成成的的操操作作对Web服务务进进行行分分类类提供供Web服务务的的协协定定信信息息提供供Web服务务的的文文本本描描述述提供供Web服务务的的文文档档链链接接提供供Web服务务的的定定位位信信息息在代代理理和和消消费费者者之之间间完完成成的的操操作作最重重要要的的功功能能就就是是实实现现查查找找UDDI注册册UDDI注册册包包含含的的信信息息Web服务务的的位位置置、、协协定定信信息息和和标标识识符符行业业的的分分类类信信息息Web服务务的的技技术术信信息息Web服务务基基础础结结构构Web服务务编编程程模模型型Web协议议HTTPSOAPXML无状状态态松耦耦合合通用用数数据据格格式式SOAP协议议基基于于XML格式式Web服务务描描述述文文件件使使用用XML格式式从Web服务务返返回回的的数数据据使使用用XML格式式UDDI注册册Web服务务使使用用XML格式式的的文文档档ASP.NET使用用XML格式式的的配配置置文文件件HTTP协议议基基本本原原理理HTTP协议议概概述述HTTP请求求与与HTTP响应应的的结结构构HTTP的GET与POST方法法URL、URI和URNURI,UniformResourceIdentifier统一一资资源源标标识识符符,,用用字字符符串串惟惟一一标标识识信信息息资资源源URL,UniformResourceLocator统一一资资源源定定位位符符,,通通过过““通通讯讯协协议议++网网络络地地址址””字字符符串串惟惟一一标标识识信信息息位位置置和和资资源源访访问问途途径径URN,UniformResourceName统一一资资源源命命名名符符,,用用于于惟惟一一标标识识全全球球范范围围内内由由专专门门机机构构负负责责的的稳稳定定的的信信息息资资源源HTTP协议议概概述述URL结构构无状状态态协协议议在客客户户端端发发出出HTTP请求求并并收收到到服服务务器器端端响响应应后后,,连连接接就就会会断断开开,,下下次次的的访访问问与与前前一一次次的的访访问问无无关关,,因因此此如如果果需需要要维维护护客客户户端端的的信信息息,,必必须须在在服服务务器器端端维维持持状状态态数数据据实例例http://host[:port][path[?querystring]]主机机路径径查询询字字符符串串HTTP请求求的的结结构构请求求的的结结构构例子子注意意空空行行MethodURLVersionHeadersMessagebody注意意空空行行响应应的的结结构构例子子HTTP/1.1200OKContent-Type:text/xml;charset=utf-8Content-Length:75<?xmlversion="1.0"encoding="utf-8"?><stocksymbol="MSFT"Price="71.50"/>HTTP响应应的的结结构构注意意空空行行VersionStatus-CodeDescriptionHeadersMessagebody注意意空空行行HTTP的GET和POST方法法HTTP-GETHTTP-POST例子子例子子GET/Trading/GetStockPrice.asp?Symbol=MSFTHTTP/1.1Host:localhostGET和POST方法法的的区区别别GET方法法通通常常没没有有消消息息主主体体GET方法法支支持持最最大大1024个字字节节的的查查询询字字符符串串,,POST方法法没没有有限限制制POST方法法把把查查询询字字符符串串放放在在消消息息主主体体中中传传输输,,因因此此比比GET方法法支支持持更更多多的的数数据据类类型型.NET中与与HTTP相关关的的类类HttpWebRequest由WebRequest派生生,,封封装装了了对对HTTP协议的的支持持HttpWebResponse由WebResponse派生,,封装装了对对HTTP协议的的支持持支持同同步和和异步步操作作HttpWebRequestHttpWebResponseSystem.WebSystem.IOStreamReaderStreamWriterHttpWebRequest类HttpWebRequest不使用用构造造函数数来进进行初初始化化,而而是调调用WebRequest的Create方法GetResponse方法向向RequestUri属性中中指定定的Internet资源发发出同同步请请求并并返回回包含含该响响应的的HttpWebResponse实例,,可以以使用用BeginGetResponse和EndGetResponse方法向向Internet资源发发出异异步请请求向Internet资源发发送数数据时时,GetRequestStream方法返返回用用于发发送数数据的的Stream实例,,BeginGetRequestStream和EndGetRequestStream方法提提供对对发送送数据据流的的异步步访问问同步调调用与与异步步调用用在.NETFramework指定的的异步步调用用方法法的设设计模模式中中,每每个同同步方方法都都有两两个对对应的的异步步方法法,即即一个个Begin异步方方法和和一个个End异步方方法客户端端调用用Begin方法启启动该该方法法的异异步调调用,,实质质是指指示开开始进进行方方法调调用,,但立立即返返回,,不需需要等等待结结果客户端端调用用End方法获获取XMLWebService方法执执行的的结果果1.HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);2.req.ContentType=contentType;3.req.Method=method;4.req.ContentLength=content.Length;5.Streams;6.s=req.GetRequestStream();7.StreamWritersw=newStreamWriter(s,Encoding.ASCII);8.sw.Write(content);9.sw.Close();10.HttpWebResponseres=(HttpWebResponse)req.GetResponse();11.s=res.GetResponseStream();12.StreamReadersr=newStreamReader(s,Encoding.ASCII);13.StringBuildersb=newStringBuilder();14.char[]data=newchar[1024];15.intnBytes;16.do{nBytes=sr.Read(data,0,(int)1024);17.sb.Append(data);18.}while(nBytes==1024);下面的的代码码是异异步调调用代代码实实现1.publicclassHandler2.{3.publicvoidCallback(IAsyncResultar)4.{HttpWebRequestreq=(HttpWebRequest)ar.AsyncState;5.HttpWebResponseres=(HttpWebResponse)req.EndGetResponse(ar);6.Streams=res.GetResponseStream();7.StreamReadersr=newStreamReader(s,Encoding.ASCII);8.StringBuildersb=newStringBuilder();9.char[]data=newchar[1024];10.intnBytes;11.do12.{13.nBytes=sr.Read(data,0,(int)1024);14.sb.Append(data);15.}while(nBytes==1024);16....17.}18.}1.Streams;2.HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);3.req.ContentType=contentType;4.req.Method=method;5.req.ContentLength=content.Length;6.s=req.GetRequestStream();7.StreamWritersw=newStreamWriter(s);8.sw.Write(content);9.sw.Close();10.Handlerh=newHandler();11.AsyncCallbackcallback=newAsyncCallback(h.Callback)12.req.BeginGetResponse(callback,req);13....建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService建立一一个简简单的的WebService客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现客户端端程序序实现现之Web服务代代理代理与与WSDL运用Wsdl.exe生成代代理配置代代理Web服务消费者Web服务代理和和WSDL使用代代理的的原因因可以使使用行行业标标准协协议((包括括SOAP)通过过网络络与Web服务进进行通通信。。也就就是说说,客客户端端和Web服务使使用SOAP消息进进行通通信,,SOAP消息将将输入入和输输出参参数封封装为为XML。但是是这种种编程程手段段非常常复杂杂,对对于Web服务消消费者者来说说,代代理类类处理理将参参数映映射为为XML元素,,然后后通过过网络络发送送SOAP消息使用Wsdl.exe生成代代理调用Wsdl.exe的语法法wsdl[options]{URL|Path}例子例子wsdl/l:VB/protocol:HttpGet/out:Bank.vb/services/bank.asmx?wsdlWsdl.exe常用参参数参数描述<urlorpath>WSDL协定、XSD架构或.discomap文档的URL或路径/language:language

用于生成的代理类的语言,可用选项包括“CS”、“VB”和“JS”,默认为“CS”/protocol:protocol

用于和Web服务方法进行通信的协议,可用选项包括“SOAP”、“HTTP-GET”和“HTTP-POST”,默认协议是“SOAP”/namespace:myNameSpace

生成的代理的命名空间,默认命名空间为全局命名空间/out:filename

要创建的包含代理类的文件的名称,默认名称从实现Web服务的类名称派生代理类类由wsdl.exe生成的的代理理类包包含所所有方方法的的同步步和异异步调调用形形式代理类类中的的方法法可以以正确确处理理传递递的消消息默认情情况下下,代代理类类使用用SOAP协议,,但是是有些些Web服务只只支持持HTTP协议,,必须须在使使用wsdl.exe时使用用参数数选定定HTTP协议代理类类都是是HttpWebClientProtocol类的派派生类类配置代代理Url属性用于修修改Web服务的的URL,实现现容错错或者者负载载平衡衡的功功能Credentials属性修改用用于身身份验验证的的消费费者凭凭据Timeout属性修改同同步调调用连连接超超时的的默认认值,,单位位为毫毫秒Proxy属性使用其其他代代理配配置替替代系系统默默认设设置AllowAutoRedirect属性防止Web服务器器向其其他服服务器器提交交用户户凭据据使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用Wsdl.exe生成代理示示例使用SOAP头自定义身身份验证在Web服务中使用用SOAP头在一个Web服务消费者者中使用SOAP头Web服务消费者Web服务在Web服务中使用用SOAP头在Web服务中定义SOAP头以及在Web服务方法中使用SOAP头的过程从SoapHeader类派生自定义类1应用SoapHeader属性3在自定义的SoapHeader派生类中添加公共数据域2在Web服务中使用用SOAP头代码示例例usingSystem.Web.Services;usingSystem.Web.Services.Protocols;publicclassAuthHeader:SoapHeader{publicstringUsername;publicstringPassword;}publicclassAccountService:WebService{publicAuthHeadersHeader;[WebMethod][SoapHeader("sHeader")]publicdecimalGetAcctBalance(stringacctID){...

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论