ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:293.91KB ,
资源ID:10592070      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10592070.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Web Service基本知识教案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Web Service基本知识教案.docx

1、Web Service基本知识教案Web Service基本知识教案 1第一章 Web service简介 15.1.1 小结 13第二章 一个简单的Web Service案例 145.2.1 小结 19第三章 数据交换 195.3.1 小结 22第四章 存取站点对象 225.4.1 小结 25 Web Service基本知识教案第一章 Web service简介现在Internet正在不断地发展着,在互联网应用刚开始的时候,我们浏览的网页只是静态的,不可交互的。而现在随着技术的日益发展,将提供给网页浏览者一个可编程的Web 站点。这些站点将在组织、应用、服务、驱动上更加紧密的结合在一起,这些

2、站点将通过一些应用软件直接连接到另一个Web 站点,这些可编程的Web 站点相比传统的web站点来说,将变得更加能重复使用,也更加智能化!.net平台给我们提供了一种运行环境,即公用语言运行环境(CLR,Common Language Runtime)。对CLR来说,它提供了一种内置机制来创建一个可编程的站点,、对于Web 程序开发者和VB 程序员来说,这将是一致、熟悉的。这种模型是可以重复使用,也可以再扩展。 它包含了开放的Internet标准(HTTP, XML, SOAP, SDL)。以便它能被网页浏览者访问。ASP.NET 使用.asmx 文件来对Web Services的支持。.as

3、mx 文件和.aspx文件一样都属于文本文件。它包含在.aspx文件之中,成为ASP.NET应用程序的一部分。下面我们将举一个简单的例子来介绍.asmx文件,我们还是从“Hello,World”这个经典的例子说起,代码如下: Imports System.Web.Services Public Class HelloWorld :Inherits WebService Public Function SayHelloWorld( ) As String Return(Hello World) End Function End Class说明:1编码最开始必须进行WebService声明,从而定

4、义这个文件为一个Web Service。而且,在同一行中设置好编程语言的类型。 2然后,引入名字空间System.Web.Services。注意,这个名字空间属于最基本的元素,必须要包含它。 3接着,声明service中的功能模块,也就是类模块,这里的类名叫HelloWorld。这个类来源于基类WebService,而且应该是public类型。4最后,定义service的可访问方法。在表示方法的符号前面,要设置好自定义属性。对应于C#语言,属性值就是WebMethod;对应于VB,就是。如果没有设置这个属性,那么这个方法就不能从service中访问。一个局部应用可以使用任何的public类型的

5、类,但是只有具备WebMethod的类才可以通过SOAP被远程地访问。当对service的请求发生时,.asmx文件将自动地被ASP.NET运行环境所编译。随后的请求就可以由缓冲的预编译类型对象执行。为了测试编写好的代码,我们需用一个支持ASP.NET的Web服务器。假设这个Web服务器的名称叫做server1,其上有一个虚拟目录test。请跟随下面步骤开始测试:1将代码保存为HelloWorld.asmx 2放到Web服务器Foo的虚拟目录Bar下 3打开Internet Explorer5,在地址栏输入http:/server1/test/HelloWorld.asmx 这时,我们将看到关

6、于这个Web Service的公用方法也就是那些标记为WebMethod属性的字符,并得知调用这些方法可以使用的协议,比如SOAP或者HTTP GET。在Internet Explorer的地址栏中输入http:/Foo/Bar/HelloWorld.asmx?SDL后,将产生基于服务描述语言(Service Description Language :SDL)语法的具备相同信息的XML文件。这个SDL文件非常重要,客户端就是使用它来访问service。我们来看一下程序运行的效果:从客户端进行访问:除了允许开发者使用的创建Web Services的技术以外,Microsoft的.NET框架给客

7、户端提供了一套访问并使用Web Services的精致且高深的工具和代码。由于Web Services是基于如简单对象访问协议SOAP(Simple Object Access Protocol)和HTTP这样的开放协议标准的,从而,我们就可以使用这种客户端技术使用非ASP.NET的Web Services。当然,这也需用高水平地合成ASP.NET Web Services和这种客户端技术。SDK中有一个工具叫做WebServiceUtil.exe,我们可以使用它来下载一个Web Services的SDL描述语言,并创建表达这个Service的代理类。比如,当我们输入以下命令,就可以创建一个叫

8、做HelloWorld.cs的代理类:WebServiceUtil /c:proxy /pa:http:/someD这个类看起来与前面创建的类非常相似。它包含一个方法SayHelloWorld,该方法返回一个字符串。将这个代理类编译到一个应用程序中,然后调用这个代理类的方法,结果就是:通过HTTP,这个代理类包装SOAP请求,然后接收SOAP编码响应,最后汇集成为一个字符串。从客户端来看,代码是很简单的,返回的结果也很简单,就是一个字符串Hello World。同样为了对照方便,我们列出了使用VB、C#以及JScript三种语言编写的代码: C#HelloWorld myHelloWorld

9、= new HelloWorld();String sReturn = myHelloWorld.SayHelloWorld();VBDim myHelloWorld As New HelloWorld()Dim sReturn As String = myHelloWorld.SayHelloWorld()JScriptvar myHelloWorld:HelloWorld = new HelloWorld();var sReturn:String = myHelloWorld.SayHelloWorld();通过上面的例程,你可能对Web Services有了初步的印象。下面,我们将介绍W

10、eb Services中涉及到的各种数据类型,也就是Web Services方法的输入/输出参数类型。因为Web Services的执行是建立在XML架构之上的,所以它能够支持丰富的数据类型。下表列出了使用SOAP协议时Web Services支持的数据类型:类型描述基础类型也即标准基础类型,包括: String、Int32、Byte、Boolean、Int16、Int64、Single、Double、Decimal、DateTime(类似XML中的timeInstant)、 DateTime(类似XML中的date)、DateTime(类似XML中的time)以及XmlQualifiedNa

11、me(类似XML中的QName)。枚举类型枚举类型。例如:. public enum color red=1, blue=2 基础,枚举数组上面提到的类型数组。例如:string 和 int类和结构带有公用域或属性的类和结构,公用域和属性是串行结构的类和结构体数组上述类型的数组DataSetADO.NET DataSet 类型。DataSets能在类和结构体作为字段来使用。DataSet数组上述类型的数组XmlNodeXmlNode是XML文档片断的内存表示,就好像一个轻量级的XML文档对象模型。比如说, 就可以存储在一个XmlNode类型变量中。我们可以将XmlNodes作为参数传递,以SO

12、AP兼容方式附加到传递给Web Services的XML文档上。返回值也是同样原理。XmlNode也可看成是类或结构中的字段。XmlNode数组上述类型的数组 当通过SOAP或者HTTP GET/POST调用Web Services时,返回值可以是上述提到的任何一种数据类型。参数的数据类型使用SOAP协议时,通过值以及通过引用这两种输入/输出参数形式都可被支持。如果是通过引用的参数类型,就会产生两种方式的数据发送效果:到服务器的以及返回到客户端的。但是,当通过HTTP GET/POST传递输入参数给Web Services时,就只支持有限的数据类型了,而且还必须是通过值形式的参数。这些类型如下

13、: 类型描述基础类型 (有限的)支持大多数标准基础类型,包括: Int32、String、Int16、Int64、Boolean、Single、Double、Decimal、DateTime、TimeSpan、UInt16、UInt32、UInt64和Currency。从客户端来看,所有这些类型都转变为string。枚举类型比如: public enum color red=1, blue=2 。基础类型数组,枚举类型数组上述类型的数组,比如 string和int 现在我们将举一个例子,来说明上面我们介绍的数据类型: 这个例子利用WebServiceUtil.exe建立的SOAP代理来使用上面

14、列出的数据类型。注意:因为在.asmx文件中定义了多于一个的公用类,所以,我们必须要指定哪一个作为WebService类,这可以通过设置WebService标识的Class属性来实现,代码如下: 源文件webservicedatatype.asmx的内容如下:Imports SystemImports System.Web.ServicesPublic Enum Mode EOn = 1 EOff = 2End EnumPublic Class Order Public OrderID As Integer Public Price As DoubleEnd ClassPublic Class

15、 DataTypesSayHello方法显示从service中返回的一个字符串信息。 Public Function SayHello() As String Return Hello World! End FunctionSayHelloName方法返回一个字符串,并接受一个字符串参数。 Public Function SayHelloName(Name As String) As String Return Hello & Name End FunctionGetIntArray方法显示了如何返回一个整数数组。 Public Function GetIntArray() As Intege

16、r() Dim I As Integer Dim A(5) As Integer For I = 0 to 4 A(I) = I*10 Next Return A End FunctionGetMode方法返回一个枚举数值。 Public Function GetMode() As Mode Return Mode.EOff End FunctionGetOrder方法返回一个类。 Public Function GetOrder() As Order Dim MyOrder As New Order MyOrder.Price=34.5 MyOrder.OrderID = 323232 Re

17、turn MyOrder End FunctionGetOrders方法返回定单对象数组。 Public Function GetOrders() As Order() Dim MyOrder(2) As Order MyOrder(0) = New Order() MyOrder(0).Price=34.5 MyOrder(0).OrderID = 323232 MyOrder(1) = New Order() MyOrder(1).Price=99.4 MyOrder(1).OrderID = 645645 Return MyOrder End FunctionEnd Class程序运行的

18、效果如下: 当我们单击invoke的时候,将显示: 对于使用客户端应用程序而言,使用WebServiceUtil代理生成工具配置这些数据类型是透明的。请看关于Web Service的一个客户端例程:客户端访问的文件:clint.aspx,内容如下: div font: 8pt verdana; background-color:cccccc; border-color:black; border-width:1; border-style:solid; padding:10,10,10,10; Public Sub Page_Load(Sender As Object, E As EventA

19、rgs) Dim D As DataTypes = New DataTypes() Message1.InnerHtml = D.SayHello() Message1.InnerHtml = Message1.InnerHtml & D.SayHelloName(Bob) Message3.InnerHtml = Message3.InnerHtml & D.GetMode() Dim MyIntArray As Integer() = D.GetIntArray() Dim MyString As String = Contents of the Array: For I = 0 To M

20、yIntArray.Length - 1 MyString = MyString & MyIntArray(I) & Next Message2.InnerHtml = Message2.InnerHtml & MyString Dim MyOrder As Order = D.GetOrder() Message4.InnerHtml = Message4.InnerHtml & OrderID: & MyOrder.OrderID Message4.InnerHtml = Message4.InnerHtml & Price: & MyOrder.Price Dim MyOrders As

21、 Order() = D.GetOrders() Message5.InnerHtml = Message5.InnerHtml & OrderID: & MyOrders(0).OrderID Message5.InnerHtml = Message5.InnerHtml & Price: & MyOrders(0).Price End SubUsing DataTypes with Web Services Methods that return a Primitive (String): Methods that return an Array of Primitives (Intege

22、rs): Method that returns an Enum: Method that returns a Class/Struct: Method that returns an array of Classes/Structs: 在客户端程序中,我们使用来引入DataTypesService这个我们自定义的名字空间。然后在程序中只是调用了DataTypesService中的方法。现在我们来看如何生成名字空间:1 Datatype.vb中的内容:Imports System.Xml.SerializationImports System.Web.Services.ProtocolsImp

23、orts System.Web.ServicesNamespace DataTypesService Public Class DataType Inherits System.Web.Services.Protocols.SoapClientProtocolPublic Sub New()MyBase.New Me.Url=http:/localhost/QuickStart/aspplus/samples/services/DataTypes/VB/DataTypes.asmx End Sub Public Function SayHello() As String Dim results

24、() As Object = Me.Invoke(SayHello, New Object(0) ) Return CType(results(0),String) End Function Public Function BeginSayHello(ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As System.IAsyncResult Return Me.BeginInvoke(SayHello, New Object(0) , callback, asyncState) End Function

25、Public Function EndSayHello(ByVal asyncResult As System.IAsyncResult) As String Dim results() As Object = Me.EndInvoke(asyncResult) Return CType(results(0),String) End Function Public Function SayHelloName(ByVal name As String) As String Dim results() As Object = Me.Invoke(SayHelloName, New Object()

26、 name) Return CType(results(0),String) End Function Public Function BeginSayHelloName(ByVal name As String, ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As System.IAsyncResult Return Me.BeginInvoke(SayHelloName, New Object() name, callback, asyncState) End Function Public Function EndSayHelloName(ByVal asyncResult As System.IAsyncResult) As String Dim results() As Object = Me.EndInvoke(asyncResult) Return CType(results(0),String) End Function Public Function GetIntArray() As Integer() Dim results() As Object = Me.Invoke(GetIntArray, New Object(0) ) Return CType(r

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1