版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebService编程
------C#.NETWebService编程
------C#.NET第五章WebService基础第五章WebService基础本章要点WebService体系结构:WebService是自包含\模块化的应用程序,它可以在网络(通常称为Web)中被描述、发布、查找以及调用。实例介绍:本章通过两个实例的分析,帮助读者及时应用学习的知识,更快更好地掌握WebService的开发。本章要点WebService体系结构:WebServiWeb服务简介Web服务的定义Web服务是可以使用标准Internet协议进行访问的可编程应用程序逻辑基于Internet技术实现可以重复使用的黑匣功能是未来分布式应用程序的发展方向Web服务简介Web服务的定义XMLWebService的定义XMLWebService实现了在异类系统之间以XML消息的形式进行数据交换远程访问数据和应用程序逻辑并不是新的技术,但以松耦合的方式执行该操作却是一个全新的概念在客户端和服务器之间要求接收方可以理解收到的消息,客户端和服务器共同遵守一个协定(通常在Web服务中使用WSDL和XSD),然后通过在指定的传输协议(例如HTTP)之上生成遵守该协定的消息来进行通信使用文本格式(如XML)的灵活性使消息交换随时间的推移以一种松耦合的方式进化成为可能XMLWebService的定义XMLWebServWeb服务的功能和优点黑匣功能使用户不需要了解服务具体是如何实现的功能的粒度没有限制,大型和小型系统都可以使用既可以访问静态资源也可以访问动态资源便于和其他Web服务集成平台无关,互操作性强支持多种语言把现有系统改造为Web服务比较容易全部采用业界标准而不是厂商标准Web服务的功能和优点黑匣功能使用户不需要了解服务具体是如TCP/IPSystem.Net.SocketsSocketsHTTPXMLorBinaryFormatsSOAPSystem.Net.SocketsSystem.NetSystem.Runtime.RemotingSystem.Web.ServicesWeb技术栈与.NETTCP/IPSystem.Net.SocketsSocket面向服务的体系结构服务代理服务提供者服务消费者发布查找绑定面向服务的体系结构服务代理服务提供者服务消费者发布查找绑定面向服务的体系结构的组成部分服务提供者网络中负责提供软件服务接口、实现特定功能的节点服务消费者网络中使用服务提供者定义的接口,实现业务解决方案的节点服务代理网络中负责存储服务描述,并帮助服务消费者定位服务的节点面向服务的体系结构的组成部分服务提供者各组成部分间的基本操作过程服务的发布服务提供者把服务发布到服务代理,包括服务接口定义、服务提供者位置以及其他相关文件服务的查找服务消费者在服务代理那里查找需要的服务服务的绑定服务消费者绑定由服务提供者提供的服务,这个过程包括提供商对消费者的身份验证各组成部分间的基本操作过程服务的发布Web服务体系结构简介UDDI(Web服务代理)Web服务提供者Web服务消费者发布查找绑定InternetWeb服务体系结构简介UDDI(Web服务代理)WebWeb服务是面向服务体系结构的具体实现UDDI任意消费者SOAPSOAPSOAPIISWeb服务Web服务是面向服务体系结构的具体实现UDDI任意消费者SWeb服务体系结构的组成部分Web服务的服务提供者由ASP.NET页面来实现,扩展名是.asmxWeb服务的服务代理UDDI提供的目录服务Web服务的服务消费者采用SOAP或HTTP协议与服务提供者进行通信,并且支持必要的安全身份验证Web服务体系结构的组成部分Web服务的服务提供者Web服务体系结构中各部分的功能Web服务提供者Web服务消费者Web服务代理Web服务体系结构中各部分的功能Web服务提供者Web服务提供者Web服务可以运行在IISWeb服务器上.NET公共语言运行库Web服务提供者的例子Web服务提供者Web服务IIS与Web服务IIS提供对HTTP协议的侦听IIS可以通过使用ISAPI体系结构来同时提供多个独立的Web服务,其中ISAPI起到分选器的作用,可以根据客户端访问文件的后缀名,将不同类型的请求定向到不同的应用程序来进行处理IIS有完整的安全结构,可以提供身份验证和数据加密等多种安全服务IIS与Web服务IIS提供对HTTP协议的侦听Web服务消费者最低功能要求可以使用该服务支持的协议来调用服务提供者的Web服务接口在消息发往服务提供者前进行正确的格式化服务定位不使用硬编码形式,可以动态定位代理异步调用消费者在等待服务完成的同时可以处理其他任务Web服务消费者的示例Web服务消费者最低功能要求代理的任务负责处理底层的协议解析字节流以提取数据验证入站数据流构造出站数据包代理的任务负责处理底层的协议Web服务代理在提供商和代理之间完成的操作对Web服务进行分类提供Web服务的协定信息提供Web服务的文本描述提供Web服务的文档链接提供Web服务的定位信息在代理和消费者之间完成的操作最重要的功能就是实现查找UDDI注册Web服务代理在提供商和代理之间完成的操作UDDI注册包含的信息Web服务的位置、协定信息和标识符行业的分类信息Web服务的技术信息UDDI注册包含的信息Web服务的位置、协定信息和标识符Web服务基础结构Web服务基础结构Web服务编程模型Web协议HTTPSOAPXML无状态松耦合通用数据格式SOAP协议基于XML格式Web服务描述文件使用XML格式从Web服务返回的数据使用XML格式
UDDI注册Web服务使用XML格式的文档ASP.NET使用XML格式的配置文件Web服务编程模型Web协议HTTP协议基本原理HTTP协议概述HTTP请求与HTTP响应的结构HTTP的GET与POST方法HTTP协议基本原理HTTP协议概述URL、URI和URNURI,UniformResourceIdentifier统一资源标识符,用字符串惟一标识信息资源URL,UniformResourceLocator统一资源定位符,通过“通讯协议+网络地址”字符串惟一标识信息位置和资源访问途径URN,UniformResourceName统一资源命名符,用于惟一标识全球范围内由专门机构负责的稳定的信息资源URL、URI和URNURI,UniformResouHTTP协议概述URL结构无状态协议在客户端发出HTTP请求并收到服务器端响应后,连接就会断开,下次的访问与前一次的访问无关,因此如果需要维护客户端的信息,必须在服务器端维持状态数据实例http://host[:port][path[?querystring]]主机路径查询字符串HTTP协议概述URL结构实例http://host[:HTTP请求的结构请求的结构例子注意空行MethodURLVersionHeadersMessagebody注意空行HTTP请求的结构请求的结构例子注意空行MethodUR响应的结构例子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/1.1200OKHTTP响应的HTTP的GET和POST方法HTTP-GETHTTP-POST例子例子GET/Trading/GetStockPrice.asp?Symbol=MSFTHTTP/1.1Host:localhostHTTP的GET和POST方法HTTP-GET例GET和POST方法的区别GET方法通常没有消息主体GET方法支持最大1024个字节的查询字符串,POST方法没有限制POST方法把查询字符串放在消息主体中传输,因此比GET方法支持更多的数据类型GET和POST方法的区别GET方法通常没有消息主体.NET中与HTTP相关的类HttpWebRequest由WebRequest派生,封装了对HTTP协议的支持HttpWebResponse由WebResponse派生,封装了对HTTP协议的支持支持同步和异步操作HttpWebRequestHttpWebResponseSystem.WebSystem.IOStreamReaderStreamWriter.NET中与HTTP相关的类HttpWebRequesHttpWebRequest类HttpWebRequest不使用构造函数来进行初始化,而是调用WebRequest的Create方法GetResponse方法向RequestUri属性中指定的Internet资源发出同步请求并返回包含该响应的HttpWebResponse实例,可以使用BeginGetResponse和EndGetResponse方法向Internet资源发出异步请求向Internet资源发送数据时,GetRequestStream方法返回用于发送数据的Stream实例,BeginGetRequestStream和EndGetRequestStream方法提供对发送数据流的异步访问HttpWebRequest类HttpWebRequest同步调用与异步调用在.NETFramework指定的异步调用方法的设计模式中,每个同步方法都有两个对应的异步方法,即一个Begin异步方法和一个End异步方法客户端调用Begin方法启动该方法的异步调用,实质是指示开始进行方法调用,但立即返回,不需要等待结果客户端调用End方法获取XMLWebService方法执行的结果同步调用与异步调用在.NETFramework指定的异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. HttpWebRequestreq=(HttpW下面的代码是异步调用代码实现下面的代码是异步调用代码实现1.publicclassHandler2.{3.
publicvoidCallback(IAsyncResultar)4.
{
HttpWebRequestreq=(HttpWebRequest)ar.AsyncState;5.
HttpWebResponseres=(HttpWebResponse)req.EndGetResponse(ar);6.
Streams=res.GetResponseStream();7.
StreamReadersr=new
StreamReader(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.publicclassHandler1. 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.
...1. Streams;建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现之Web服务代理代理与WSDL运用Wsdl.exe生成代理配置代理Web服务消费者Web服务客户端程序实现之Web服务代理代理与WSDLWeb服务代理和WSDL使用代理的原因可以使用行业标准协议(包括SOAP)通过网络与Web服务进行通信。也就是说,客户端和Web服务使用SOAP消息进行通信,SOAP消息将输入和输出参数封装为XML。但是这种编程手段非常复杂,对于Web服务消费者来说,代理类处理将参数映射为XML元素,然后通过网络发送SOAP消息代理和WSDL使用代理的原因使用Wsdl.exe生成代理调用Wsdl.exe的语法wsdl[options]{URL|Path}例子例子wsdl/l:VB/protocol:HttpGet/out:Bank.vb/services/bank.asmx?wsdl使用Wsdl.exe生成代理调用Wsdl.exe的语Wsdl.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常用参数参数描述<urlorpath>代理类由wsdl.exe生成的代理类包含所有方法的同步和异步调用形式代理类中的方法可以正确处理传递的消息默认情况下,代理类使用SOAP协议,但是有些Web服务只支持HTTP协议,必须在使用wsdl.exe时使用参数选定HTTP协议代理类都是HttpWebClientProtocol类的派生类代理类由wsdl.exe生成的代理类包含所有方法的同步配置代理Url属性用于修改Web服务的URL,实现容错或者负载平衡的功能Credentials属性修改用于身份验证的消费者凭据Timeout属性修改同步调用连接超时的默认值,单位为毫秒Proxy属性使用其他代理配置替代系统默认设置AllowAutoRedirect属性防止Web服务器向其他服务器提交用户凭据配置代理Url属性使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用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服务使用SOAP头自定义身份验证在Web服务中使用SO在Web服务中使用SOAP头在Web服务中定义SOAP头以及在Web服务方法中使用SOAP头的过程从SoapHeader类派生自定义类1应用SoapHeader属性3在自定义的SoapHeader派生类中添加公共数据域2在Web服务中使用SOAP头在Web服务中定义在Web服务中使用SOAP头代码示例usingSystem.Web.Services;usingSystem.Web.Services.Protocols;publicclassAuthHeader:SoapHeader
{ publicstringUsername; publicstringPassword;}publicclassAccountService:WebService{publicAuthHeadersHeader; [WebMethod]
[SoapHeader("sHeader")] publicdecimalGetAcctBalance(stringacctID){ ... }}红色:第一步绿色:第二步蓝色:第三步在Web服务中使用SOAP头代码示例usingSy修改配置使自定义身份验证模式生效通过SOAP头的设计可以实现自定义的身份验证模式,要让这种模式生效还必须修改web.config文件<configuration> <system.web> <authenticationmode="None"/> </system.web></configuration>修改配置使自定义身份验证模式生效通过SOAP头的设计可以WSDL中的SOAP头Web服务代理类和SOAP头调用Web服务时使用SOAP头在Web服务消费者中使用SOAP头Web服务消费者WSDL中的SOAP头在Web服务消费者中使用S自定义SOAP头的客户端代码示例自动生成的Web服务代理类调用Web服务时使用自定义身份验证[SoapHeaderAttribute("WoodgroveAuthInfoValue",Required=false)]//...其他属性...publicAcctGetAccount(intacctID){...WoodgroveOnlineBankbank=newWoodgroveOnlineBank();WoodgroveAuthInfoauthInfo=newWoodgroveAuthInfo();authInfo.Username="Adam";authInfo.Password="password";bank.WoodgroveAuthInfoValue=authInfo;Acctacct=bank.GetAccount(1);自定义SOAP头的客户端代码示例自动生成的Web服务自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例自定义SOAP头的客户端代码示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例创建接口相关的WebService服务示例演讲完毕,谢谢观看!演讲完毕,谢谢观看!WebService编程
------C#.NETWebService编程
------C#.NET第五章WebService基础第五章WebService基础本章要点WebService体系结构:WebService是自包含\模块化的应用程序,它可以在网络(通常称为Web)中被描述、发布、查找以及调用。实例介绍:本章通过两个实例的分析,帮助读者及时应用学习的知识,更快更好地掌握WebService的开发。本章要点WebService体系结构:WebServiWeb服务简介Web服务的定义Web服务是可以使用标准Internet协议进行访问的可编程应用程序逻辑基于Internet技术实现可以重复使用的黑匣功能是未来分布式应用程序的发展方向Web服务简介Web服务的定义XMLWebService的定义XMLWebService实现了在异类系统之间以XML消息的形式进行数据交换远程访问数据和应用程序逻辑并不是新的技术,但以松耦合的方式执行该操作却是一个全新的概念在客户端和服务器之间要求接收方可以理解收到的消息,客户端和服务器共同遵守一个协定(通常在Web服务中使用WSDL和XSD),然后通过在指定的传输协议(例如HTTP)之上生成遵守该协定的消息来进行通信使用文本格式(如XML)的灵活性使消息交换随时间的推移以一种松耦合的方式进化成为可能XMLWebService的定义XMLWebServWeb服务的功能和优点黑匣功能使用户不需要了解服务具体是如何实现的功能的粒度没有限制,大型和小型系统都可以使用既可以访问静态资源也可以访问动态资源便于和其他Web服务集成平台无关,互操作性强支持多种语言把现有系统改造为Web服务比较容易全部采用业界标准而不是厂商标准Web服务的功能和优点黑匣功能使用户不需要了解服务具体是如TCP/IPSystem.Net.SocketsSocketsHTTPXMLorBinaryFormatsSOAPSystem.Net.SocketsSystem.NetSystem.Runtime.RemotingSystem.Web.ServicesWeb技术栈与.NETTCP/IPSystem.Net.SocketsSocket面向服务的体系结构服务代理服务提供者服务消费者发布查找绑定面向服务的体系结构服务代理服务提供者服务消费者发布查找绑定面向服务的体系结构的组成部分服务提供者网络中负责提供软件服务接口、实现特定功能的节点服务消费者网络中使用服务提供者定义的接口,实现业务解决方案的节点服务代理网络中负责存储服务描述,并帮助服务消费者定位服务的节点面向服务的体系结构的组成部分服务提供者各组成部分间的基本操作过程服务的发布服务提供者把服务发布到服务代理,包括服务接口定义、服务提供者位置以及其他相关文件服务的查找服务消费者在服务代理那里查找需要的服务服务的绑定服务消费者绑定由服务提供者提供的服务,这个过程包括提供商对消费者的身份验证各组成部分间的基本操作过程服务的发布Web服务体系结构简介UDDI(Web服务代理)Web服务提供者Web服务消费者发布查找绑定InternetWeb服务体系结构简介UDDI(Web服务代理)WebWeb服务是面向服务体系结构的具体实现UDDI任意消费者SOAPSOAPSOAPIISWeb服务Web服务是面向服务体系结构的具体实现UDDI任意消费者SWeb服务体系结构的组成部分Web服务的服务提供者由ASP.NET页面来实现,扩展名是.asmxWeb服务的服务代理UDDI提供的目录服务Web服务的服务消费者采用SOAP或HTTP协议与服务提供者进行通信,并且支持必要的安全身份验证Web服务体系结构的组成部分Web服务的服务提供者Web服务体系结构中各部分的功能Web服务提供者Web服务消费者Web服务代理Web服务体系结构中各部分的功能Web服务提供者Web服务提供者Web服务可以运行在IISWeb服务器上.NET公共语言运行库Web服务提供者的例子Web服务提供者Web服务IIS与Web服务IIS提供对HTTP协议的侦听IIS可以通过使用ISAPI体系结构来同时提供多个独立的Web服务,其中ISAPI起到分选器的作用,可以根据客户端访问文件的后缀名,将不同类型的请求定向到不同的应用程序来进行处理IIS有完整的安全结构,可以提供身份验证和数据加密等多种安全服务IIS与Web服务IIS提供对HTTP协议的侦听Web服务消费者最低功能要求可以使用该服务支持的协议来调用服务提供者的Web服务接口在消息发往服务提供者前进行正确的格式化服务定位不使用硬编码形式,可以动态定位代理异步调用消费者在等待服务完成的同时可以处理其他任务Web服务消费者的示例Web服务消费者最低功能要求代理的任务负责处理底层的协议解析字节流以提取数据验证入站数据流构造出站数据包代理的任务负责处理底层的协议Web服务代理在提供商和代理之间完成的操作对Web服务进行分类提供Web服务的协定信息提供Web服务的文本描述提供Web服务的文档链接提供Web服务的定位信息在代理和消费者之间完成的操作最重要的功能就是实现查找UDDI注册Web服务代理在提供商和代理之间完成的操作UDDI注册包含的信息Web服务的位置、协定信息和标识符行业的分类信息Web服务的技术信息UDDI注册包含的信息Web服务的位置、协定信息和标识符Web服务基础结构Web服务基础结构Web服务编程模型Web协议HTTPSOAPXML无状态松耦合通用数据格式SOAP协议基于XML格式Web服务描述文件使用XML格式从Web服务返回的数据使用XML格式
UDDI注册Web服务使用XML格式的文档ASP.NET使用XML格式的配置文件Web服务编程模型Web协议HTTP协议基本原理HTTP协议概述HTTP请求与HTTP响应的结构HTTP的GET与POST方法HTTP协议基本原理HTTP协议概述URL、URI和URNURI,UniformResourceIdentifier统一资源标识符,用字符串惟一标识信息资源URL,UniformResourceLocator统一资源定位符,通过“通讯协议+网络地址”字符串惟一标识信息位置和资源访问途径URN,UniformResourceName统一资源命名符,用于惟一标识全球范围内由专门机构负责的稳定的信息资源URL、URI和URNURI,UniformResouHTTP协议概述URL结构无状态协议在客户端发出HTTP请求并收到服务器端响应后,连接就会断开,下次的访问与前一次的访问无关,因此如果需要维护客户端的信息,必须在服务器端维持状态数据实例http://host[:port][path[?querystring]]主机路径查询字符串HTTP协议概述URL结构实例http://host[:HTTP请求的结构请求的结构例子注意空行MethodURLVersionHeadersMessagebody注意空行HTTP请求的结构请求的结构例子注意空行MethodUR响应的结构例子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/1.1200OKHTTP响应的HTTP的GET和POST方法HTTP-GETHTTP-POST例子例子GET/Trading/GetStockPrice.asp?Symbol=MSFTHTTP/1.1Host:localhostHTTP的GET和POST方法HTTP-GET例GET和POST方法的区别GET方法通常没有消息主体GET方法支持最大1024个字节的查询字符串,POST方法没有限制POST方法把查询字符串放在消息主体中传输,因此比GET方法支持更多的数据类型GET和POST方法的区别GET方法通常没有消息主体.NET中与HTTP相关的类HttpWebRequest由WebRequest派生,封装了对HTTP协议的支持HttpWebResponse由WebResponse派生,封装了对HTTP协议的支持支持同步和异步操作HttpWebRequestHttpWebResponseSystem.WebSystem.IOStreamReaderStreamWriter.NET中与HTTP相关的类HttpWebRequesHttpWebRequest类HttpWebRequest不使用构造函数来进行初始化,而是调用WebRequest的Create方法GetResponse方法向RequestUri属性中指定的Internet资源发出同步请求并返回包含该响应的HttpWebResponse实例,可以使用BeginGetResponse和EndGetResponse方法向Internet资源发出异步请求向Internet资源发送数据时,GetRequestStream方法返回用于发送数据的Stream实例,BeginGetRequestStream和EndGetRequestStream方法提供对发送数据流的异步访问HttpWebRequest类HttpWebRequest同步调用与异步调用在.NETFramework指定的异步调用方法的设计模式中,每个同步方法都有两个对应的异步方法,即一个Begin异步方法和一个End异步方法客户端调用Begin方法启动该方法的异步调用,实质是指示开始进行方法调用,但立即返回,不需要等待结果客户端调用End方法获取XMLWebService方法执行的结果同步调用与异步调用在.NETFramework指定的异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. HttpWebRequestreq=(HttpW下面的代码是异步调用代码实现下面的代码是异步调用代码实现1.publicclassHandler2.{3.
publicvoidCallback(IAsyncResultar)4.
{
HttpWebRequestreq=(HttpWebRequest)ar.AsyncState;5.
HttpWebResponseres=(HttpWebResponse)req.EndGetResponse(ar);6.
Streams=res.GetResponseStream();7.
StreamReadersr=new
StreamReader(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.publicclassHandler1. 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.
...1. Streams;建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService建立一个简单的WebService客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现客户端程序实现之Web服务代理代理与WSDL运用Wsdl.exe生成代理配置代理Web服务消费者Web服务客户端程序实现之Web服务代理代理与WSDLWeb服务代理和WSDL使用代理的原因可以使用行业标准协议(包括SOAP)通过网络与Web服务进行通信。也就是说,客户端和Web服务使用SOAP消息进行通信,SOAP消息将输入和输出参数封装为XML。但是这种编程手段非常复杂,对于Web服务消费者来说,代理类处理将参数映射为XML元素,然后通过网络发送SOAP消息代理和WSDL使用代理的原因使用Wsdl.exe生成代理调用Wsdl.exe的语法wsdl[options]{URL|Path}例子例子wsdl/l:VB/protocol:HttpGet/out:Bank.vb/services/bank.asmx?wsdl使用Wsdl.exe生成代理调用Wsdl.exe的语Wsdl.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常用参数参数描述<urlorpath>代理类由wsdl.exe生成的代理类包含所有方法的同步和异步调用形式代理类中的方法可以正确处理传递的消息默认情况下,代理类使用SOAP协议,但是有些Web服务只支持HTTP协议,必须在使用wsdl.exe时使用参数选定HTTP协议代理类都是HttpWebClientProtocol类的派生类代理类由wsdl.exe生成的代理类包含所有方法的同步配置代理Url属性用于修改Web服务的URL,实现容错或者负载平衡的功能Credentials属性修改用于身份验证的消费者凭据Timeout属性修改同步调用连接超时的默认值,单位为毫秒Proxy属性使用其他代理配置替代系统默认设置AllowAutoRedirect属性防止Web服务器向其他服务器提交用户凭据配置代理Url属性使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用Wsdl.exe生成代理示例使用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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年万安第二中心幼儿园招聘备考题库及答案详解(易错题)
- 2026年苏州交投鑫能交通科技有限公司公开招聘备考题库及完整答案详解1套
- 2026年福建图书联合发行有限责任公司招聘备考题库及参考答案详解一套
- 2026年上海市嘉定区中心医院辅助岗位招聘备考题库含答案详解
- 2026年浙大儿院劳务派遣科研助理招聘备考题库(徐晓军课题组)及完整答案详解一套
- 2026年甘谷县公安局招聘警务辅助人员的备考题库含答案详解
- 2025年铜陵高新控股集团有限公司工作人员招聘备考题库完整参考答案详解
- 中意宁波生态园控股集团有限公司2025年第三次公开招聘备考题库及答案详解(考点梳理)
- 《DLT 2004-2019直流电流互感器使用技术条件》专题研究报告深度
- 2025年鄂温克族自治旗引进曲棍球人才备考题库带答案详解
- DB11T 381-2023 既有居住建筑节能改造技术规程
- 计算机应用数学基础 教学 作者 王学军 计算机应用数学课件 第10章 图论
- DF6205电能量采集装置用户手册-2
- 万科集团财务管理制度手册
- 怀仁县肉牛养殖产业化项目可行性研究报告
- 零序CT验收专题知识专家讲座
- 水利水电工程建设参建各方安全生产职责
- 电梯整机安装质量检查记录
- 火力发电厂厂用电监控管理系统(ECMS)培训
- GB/T 3102.2-1993周期及其有关现象的量和单位
- GB/T 30340-2013机动车驾驶员培训机构资格条件
评论
0/150
提交评论