WebService文档_第1页
WebService文档_第2页
WebService文档_第3页
WebService文档_第4页
WebService文档_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、WebService 课程业务需求:常见WEB服务:1. 手机淘宝、京东.2. 天气预报3. 手机号归属地4. 股票查询5. 发手机短消息6. 手机充值功能7. 中英文翻译8. 银行转账业务9. 公司的“进销存系统”在某商品缺货时自动给供应商下订单10. .Java应用程序View-jspControl/ServiceDAO/ModelDB简单的网络应用需求简单的网络应用使用单一语言写成,它的唯一外部程序就是它所依赖的数据库。大家想想是不是这样呢?SQLJava应用程序ViewControl-对外公布服务层DAO/ModelDB手机终端穿戴设备C#.NET应用复杂的网络应用除了自己内部调用之外

2、有可能还会对外部程序提供服务,更或是调用其他应用。C#应用PHP应用 需求总结:目前软件应用中会出现大量的需求:同一个应用会有不同的客户端访问,或者不同的应用之间也会相互调用服务(A程序和B程序可能不是同一个语言开发的应用) 基于Socket创建Web服务为什么要使用Socket呢,我们来看下图Socket原理图回顾:编写SocketService,完成字母小写转大写功能ServerSocket服务器端代码如下:public static void main(String args) throws IOException / 1:建立服务器端的tcp socket服务,必须监听一个端口Serv

3、erSocket ss = new ServerSocket(9999);/ 2: 通过服务器端的socket对象的accept方法获取连接上的客户端对象Socket s = null;/ 3:获取客户端的数据while (true) / 接受Socket服务,如果有,没有则堵塞,等待s = ss.accept();System.out.println("accept success.");/ 从Socekt输入流中获取客户端发送过来的输出流InputStream in = s.getInputStream();byte buf = new byte1024;int len

4、 = in.read(buf);String str = new String(buf, 0, len);System.out.println("从客户端传送来的数据如下:");System.out.println(str);/ 通过服务器端Socket输出流,写数据,会传送到客户端Socket输入流中OutputStream out = s.getOutputStream();/ 把字母转化为大写out.write(str.toUpperCase().getBytes();s.close();通过Java客户端访问SocketService服务public static

5、void main(String args) throws Exception Scanner input=new Scanner(System.in);/ 1: 创建一个基于TCP协议的socket服务,在建立对象时,要指定连接服务器和端口号Socket s=new Socket("",9999);/ 2: 通过建立的Socket对象获取Socket中的输出流,的调用getOutStream方法OutputStream out=s.getOutputStream();System.out.println("请输入要转化的字母,或者单词!&quo

6、t;);/ 3: 写入到Socket输出流中String word=input.next();out.write(word.getBytes();/ 4: 通过建立的Socket对象获取Socket中的输入流,输入流会接受来自服务器端数据InputStream in=s.getInputStream();byte buf=new byte1024;/ 5: 获取输入字节流的数据,注意此方法是堵塞的,如果没有获取数据会一直等待int len=in.read(buf);String str=new String(buf,0,len);System.out.println("服务返回来的结

7、果如下:");System.out.println(str);/ 关闭Sockets.close();注意先启动服务器端在启动客户端:否则会出现连接异常服务器端显示结果如下:accept success.从客户端传送来的数据如下:hello客户端端显示结果如下:请输入要转化的字母,或者单词!hello服务返回来的结果如下:HELLO通过IE来访问SocketServiceaccept success.从客户端传送来的数据如下:POST / HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, appl

8、ication/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Accept-Language: zh-CNUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; M

9、edia Center PC 6.0)Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateHost: :9999Content-Length: 10Connection: Keep-AliveCache-Control: no-cacheword=hello返回给IE客户端结果如下:POST / HTTP/1.1ACCEPT: IMAGE/JPEG, APPLICATION/X-MS-APPLICATION, IMAGE/GIF, APPLICATION/XAML+XML,

10、IMAGE/PJPEG, APPLICATION/X-MS-XBAP, APPLICATION/VND.MS-EXCEL, APPLICATION/VND.MS-POWERPOINT, APPLICATION/MSWORD, */*ACCEPT-LANGUAGE: ZH-CNUSER-AGENT: MOZILLA/4.0 (COMPATIBLE; MSIE 8.0; WINDOWS NT 6.1; TRIDENT/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MEDIA CENTER PC 6.0

11、)CONTENT-TYPE: APPLICATION/X-WWW-FORM-URLENCODEDACCEPT-ENCODING: GZIP, DEFLATEHOST: :9999CONTENT-LENGTH: 8CONNECTION: KEEP-ALIVECACHE-CONTROL: NO-CACHEWORD=AAAHTTP协议格式简单回顾:Http请求由三部分组成,分别是:请求行、消息报头、请求正文请求行:以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version消息报头:Accept: Acc

12、ept请求报头域用于指定客户端接受哪些类型的信息Host:(发送请求时,该报头域是必需的)请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的 默认80则省略Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制Content-Type:text/html;charset=UTF-8HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文HTTP-Version Status-Code Reason-Phrase其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代

13、码;Reason-Phrase表示状态代码的文本描述。HTTP/1.1 200 OK问题思考目前我们用Java语言创建一个Socket服务器端, 然用 Java Socket访问没有任何问题. 用C# Socket客户端访问也没有任何问题(说明不同过的语言编写的程序可以通过Socket通信) 用IE访问Socket服务端同样也没问题,IE本身是用VC+语言开发的但是, 如果我们的服务复杂一点呢. 例如 我过去的单词 操作1:小写转大写,2:大写转小写 3:英文转中文 而且我们发现IE在发送请求的时候不但传输的数据还传输了协议. 而且目前我们的很多应用都是基于Web开发的. 如果我们处理Web的

14、请求. 那么还需要从发送过来的协议中获取数据.所以最好的解决办法就是规定格式, 客户端统一格式发送,只要格式统一,服务器端就从指定的格式中获取数据就OK了“Socket+规范格式”创建Web服务服务器端代码修改后如下:public static void main(String args) throws Exception / 1:建立服务器端的tcp socket服务,必须监听一个端口ServerSocket serverSocket = new ServerSocket(7777);Socket socket = null;while (true) / 接受Socket服务,如果有,没有则

15、堵塞,等待socket = serverSocket.accept();/ 从Socekt输入流中获取客户端发送过来的输出流InputStream inputStream = socket.getInputStream();byte bytes = new byte1024;int size = inputStream.read(bytes);String word=new String(bytes, 0, size);System.out.println("字节数为:" + size + "内容为:" + word);/*-根据不同的类型选择不同的服务

16、,格式是由服务器端制定 type=int,word=string-*/String content=word.split(",");/ 获取服务的类型int type=Integer.parseInt(content0.split("=")1);/ 获取处理服务的数据String val=content1.split("=")1;String result=wordService(val, type);/*-*/OutputStream out = socket.getOutputStream();System.out.println

17、("返回的结果如下:" + result);out.write(result.getBytes();socket.close();/ type=1 小写转大写 type=2大写转小写public static String wordService(String val,int type)return type=1?val.toUpperCase():val.toLowerCase();Socket客户端访问SocektFormatService服务端代码如下:public static void main(String args) throws Exception / 1:

18、 创建一个基于TCP协议的socket服务,在建立对象时,要指定连接服务器和端口号Socket s=new Socket("",9999);/ 2: 通过建立的Socket对象获取Socket中的输出流,的调用getOutStream方法OutputStream out=s.getOutputStream();/out.write("type=2,word=HELLO".getBytes();out.write("type=1,word=hello".getBytes();/ 4: 通过建立的Socket对象获取So

19、cket中的输入流,输入流会接受来自服务器端数据InputStream in=s.getInputStream();byte buf=new byte1024;/ 5: 获取输入字节流的数据,注意此方法是堵塞的,如果没有获取数据会一直等待int len=in.read(buf);String str=new String(buf,0,len);System.out.println("服务返回来的结果如下:");System.out.println(str);/ 关闭Sockets.close();IE调用SocektFormatService服务:如果要让IE调用则 Soc

20、ket服务端首先要从传输过来的HTTP协议中获取传输过来的信息(去除请求行、消息报头)然后在进行服务的处理.因为Socket是基于TCP协议的 而IE是基于HTTP协议的,不同协议格式不一样. 所以处理起来比较麻烦,此处省略解决方案一的缺点:1. Socket服务不利于推广(如果让别人知道你的Socket服务)2. Socket处于传输层, 有可能无法穿越防火墙3. Socket本身处于传输层,要处理应用层的服务要解析HTTP协议比较麻烦,但是现在我们的应用都是基于web的, web中的数据传输就需要HTTP协议4. 即使定义了格式. 后面如果格式改变则客户端格式都需要同步变化维护困难WebS

21、ervice相关介绍 WebService概念介绍:Web Service, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据通俗的讲,Web Service就是一个部署在Web服务器上的一个,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web Service 的应用程序叫做客户端,发布这个web服务的机应用程序器称为Web Service服务器WebSe

22、rvice技术规则: 1.  基于web的系统级接口规范   - 一个普通适用标准 :http+xml   - 任何网络通信的操作系统   - 自包含、自描述、模块化  - 发布、定位、通过web调用 2.  web service 技术和规则   - xml(可拓展标记语言)   - soap(简易对象访问协议) soap http+xmlàsocket  

23、; - wsdl(web services 描述语言)    - uddi(通用描述、发现及整合)3. 跨平台的可互操作性   - 基于xml   - 基于xsd(xml schema )   - 基于http4. webservice 适用场景   - 跨防火墙的通信   - 异构系统间应用程序集成(jee:(EJB RMI)、php、c+、.net (com+))WebService

24、的优势介绍:a) 异构平台的互通性理论上, Web Service 最大的优势是提供了异构平台的无缝街接技术手段。由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的协议通信,这就产生了互相通信的需求。 Web Service 使任何两个应用程序,只要能读写XML,那么就能互相通信。b) 更广泛的软件复用例如手机淘宝可以复用已有淘宝的业务逻辑.软件的复用技术通过组合已有模块来搭建应用程序,能大幅度提高软件的生产效率和质量。用户只要获得了描述 Web Service 的 WSDL 文件,就可以方便地生成客户端代理,并通过代理访问 Web Service 。c) 成

25、本低、可读性强、应用范围广Web Service 可用基于 XML 的 SOAP 来表示数据和调用请求。并且通过 HTTP 协议传输 XML 格式的数据d) 迅捷的软件发行方式每个web Service称为一个生产者.不同的生产者可以相互协同合作完成整个应用Web Service 将彻底地改变软件的发行方式。软件供应商可以把软件分解成若Web Service 模块构成的系统,直接在 Web 上发布WebService专业名称介绍:a) XML: Extensible Markup Language 扩展性标记语言XML,用于传输格式化的数据,是Web服务的基础。 namespace-命名空间。

26、 xmlns=“” 使用默认命名空间。 xmlns:itcast=“”使用指定名称的命名空间。b) WSDL: WebService Description Language Web服务描述语言。调用该webservice api 的接口描述 通过XML形式说明服务在什么地方地址。 通过XML形式说明服务提供什么样的方法 如何调用。c) SOAP: Simple Object Access Protocol(简单对象访问协议) SOAP作为一个基于XML语言的协议用于有网上传输数据。 SOAP = 在HTTP的基础上+XML数据。 SOAP是基于HTTP的。 SOAP的组成如下1. Envel

27、ope 必须的部分。以XML的根元素出现。2. Headers 可选的。3. Body 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。WebService工作原理:调用已发布的WebServiceWebService服务演示a) 登录b) 单击手机查询服务c) 选择要调用的方法 例如: getMobileCodeInfod) 输入要查询的手机号单击”调用” 截图如下, 免费用户 UserID为nulle) 可以看到返回如下结果:<?xml version="1.0" encoding="utf-8" ?> <s

28、tring xmlns="http:/WebX 重庆 重庆移动全球通卡</string>HttpClient工具使用HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。为什么要使用HttpClient工具:原生态的Socket基于传输层,现在我们要访问的WebService是基于HTTP的属于应用层,所以我们的Socket通信要借助HttpClient发HTTP请求,这样格式才能匹配HttpClient使用步骤如下:1.

29、创建 HttpClient 的实例 2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址3. 配置要传输的参数,和消息头信息4. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例5. 通过response读取字符串6. 释放连接。无论执行方法是否成功,都必须释放连接 Socket + HttpClient 访问WSGet方式:public static void getMethod() throws Exception / 创建get对象,类似get请求GetMethod getMethod

30、= new GetMethod("/ 发送get请求int code = http.executeMethod(getMethod);System.out.println("返回的消息码为:" + code);System.out.println("返回的消息为:" + getMethod.getResponseBodyAsString();getMethod.releaseConnection();POST方式:public static void postMethod() throws Exception / 创建post请求,类似Post

31、请求PostMethod postMethod = new PostMethod("/ 设置请求的正文内容postMethod.setRequestBody("mobileCodeamp;userID=");/ 设置传送信息的格式postMethod.setRequestHeader("Content-Type","application/x-www-form-urlencoded");/ 发送post请求int code = http.executeMethod(postMethod);Syste

32、m.out.println("返回消息码为:" + code);System.out.println("返回的消息为:" + postMethod.getResponseBodyAsString();postMethod.releaseConnection();SOAP1.1方式:public static void postSoap1() throws Exception / 创建一个post请求,类似Post请求PostMethod postMethod = new PostMethod("/ 设置传送信息的格式postMethod.set

33、RequestHeader("Content-Type","text/xml; charset=utf-8");postMethod.setRequestBody(new FileInputStream("C:/a.txt");int code = http.executeMethod(postMethod);System.out.println("消息码为:" + code);System.out.println("返回的消息为:" + postMethod.getResponseBodyAs

34、String();postMethod.releaseConnection();Java方式访问WebService1. 选中要调用的服务单击”服务说明”a) 例如选中:b) 2. 获取wsdl文件.使用JDK1.6以上的版本的wsimport命令3. 切换到c:ws文件夹 在dos输入:wsimport wsdl目标地址a) C:ws>wsimport 4. 可以把class文件打成jar包 jar cvf test.jar 打包目录5. 拷贝的项目中调参考WSDL用即可调用源码如下:public static void main(String args) MobileCodeWS m

35、obileCodeWs=new MobileCodeWS();MobileCodeWSSoap mobileCodeWSSoap=mobileCodeWs.getMobileCodeWSSoap();String tel=mobileCodeWSSoap.getMobileCodeInfo("quot;,null);System.out.println(tel);WSDL协议简单介绍WSDL WebService Description Language Web服务描述语言通过XML形式说明服务在什么地方地址。通过XML形式说明服务提供什么样的方法 如何调用。

36、<wsdl:service name="MobileCodeWS"> <wsdl:documentation xmlns:wsdl="/wsdl/"><a href=" target="_blank">WebX</a> <strong>国内手机号码归属地查询WEB服务</strong>,提供最新的国内手机号码段归属地数据,每月更新。<br />使用本站 WEB 服务请注明或链接本站:<a

37、 href=" target="_blank"> 感谢大家的支持!<br />&nbsp;</wsdl:documentation> - <wsdl:port name="MobileCodeWSSoap" binding="tns:MobileCodeWSSoap"> <soap:address location=" /> </wsdl:port><wsdl:binding name="MobileCodeWSSoap&qu

38、ot; type="tns:MobileCodeWSSoap">JDK6的WebService发布注意MyEclipse8.5自带的JDK版本太低, 如果要发布自己的WebService则要升级到jdk13及以后版本创建第一个Web服务:WebService服务类代码如下:WebService/ 添加了此注解,代表是一个WebServicepublic class HelloWorld / 非 static final private 方法默认会发布public String sayHi(String name) return "hello&q

39、uot; + name;发布web服务:public static void main(String args) String address=":9999/helloworld"/ 注册并且发布一个服务,arg0: 服务地址 , arg1:要发布的服务对象Endpoint endPoint=Endpoint.publish(address,new HelloWorld();/ 可以停止服务,或者手动停止/endPoint.stop();获取发布web服务的信息访问wsdl网址为: :9999/helloworld

40、?wsdl通过wsimport生成Java代码: Wsimport / 只能生成 class格式wsimport s . / 能生成 class格式和Java源文件Wsimport s . p a.b.c / 能生成 class格式和Java源文件 并且可以自定义包名jar -cvf mobile.jar . / 把当前路径打包成jar文件, 包名为mobile.jar调用第一个WebService服务public static void main(String args) HelloWorldService helloWorldService=new HelloWorldService();

41、HelloWorld helloWorld=helloWorldService.getHelloWorldPort();System.out.println(helloWorld.sayHi("china");代码注意事项:1. 在类上添加WebService注解,代表发布一个WebService服务2. 通过EndPoint(端点服务)发布一个webService。Endpoint也是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。3. Endpoint.publis

42、h(String address, Object implementor) 静态方法在给定地址处针对指定的实现者对象创建并发布端点4. 给类添加上WebService注解后,类中所有的非静态方法都将会对外公布5. 如果希望某个方法不对外公开,可以在方法上添加WebMethod(exclude=true),阻止对外公开。6. 如果一个类上,被添加了WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。7. protected、private、final、static方法不能对外公开 代码如下:WebService/ 添加了此注解,代表是一个WebSe

43、rvicepublic class HelloWorld / 非 static final private 方法默认会发布public String sayHi(String name) return "hello" + name;WebMethod(exclude=true)public void exclude()/ 被注解排除的方法protected void protected1()/受保护的方法默认不发布private void private1()/ 私有方法默认不发布public static void static1()/ static 方法默认不发布pub

44、lic final void final1()/ final 方法默认不发布WSDL语法分析前面获取web的发布信息是通过wsimport 来解析wsdl文件得到Java类来实现的. 如论是获取发布的服务,还是调用发布的服务.都需要参考wsdl文件.接下面我们就来分析wsdl文件的结构分析服务类相关信息/ HelloWorldService 就是我们注册的服务,默认在原来的类名后面加上Service<service name="HelloWorldService"> / 可以通过getHelloWroldPort()获取基于soap1.1的服务,此服务接受的类型

45、取决,/ HelloWorldServiceSoapBinding绑定的类型<port name="HelloWorldPort" binding="tns:HelloWorldPortBinding">/ 提供服务的地址,和端口,SOAP后面介绍 <soap:address location=":9999/helloworld" /> </port></service>分析如何调用服务方法/ 上图中的HelloWorldPortBinding参照的就是此H

46、elloWorldPortBinding它的类型为HelloWorld接口类型.<binding name="HelloWorldPortBinding" type="tns:HelloWorld"> / SOAP1.1协议 /soap/http<soap:binding transport="/soap/http" style="document" /> / 此服务拥有操作的方法<op

47、eration name="sayHi"> <soap:operation soapAction="" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation></binding>WSDL详解WSDL 文档的组成部分元素定义<portType

48、>web service 执行的操作<message>web service 使用的消息<types>web service 使用的数据类型<binding>web service 使用的通信协议WSDL 文档的主要结构:<definitions><types> definition of types.</types><message> definition of a message.</message><portType> definition of a port.</po

49、rtType><binding> definition of a binding.</binding></definitions>WSDL元素介绍定义一个功能,在Java中叫做方法,在C中叫做函数;在Java中叫类,在C语言中叫做结构体。这些名词都不一样。WSDL规范为了不会产生歧义,就定义了一些新的名词来表述功能与服务。<portType>(WSDL端口对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。)<portType> 元素是最重要的 WSDL 元素。 它可描述一个 web serv

50、ice、可被执行的操作,以及相关的消息。 可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。 <operation>子元素:对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。<message> (WSDL消息)<message> 元素定义一个操作的数据元素。 每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。<types>(WS

51、DL types数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。Types中有simplexType 和 complexType两种。)<types> 元素定义 web service 使用的数据类型。 为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。 <binding> (WSDL Bindings特定端口类型的具体协议和数据格式规范的绑定。)<binding> 元素为每个端口定义消息格式和协议细节。示例这是某个 WSDL 文档的简化的片段: <message name=&qu

52、ot;getTermRequest"> <part name="term" type="xs:string"/></message><message name="getTermResponse"> <part name="value" type="xs:string"/></message><portType name="glossaryTerms"> <operation name

53、="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation></portType>在这个例子中,<portType> 元素把 "glossaryTerms" 定义为某个端口的名称,把 "getTerm" 定义为某个操作的名称。操作 "getTerm" 拥有一个名为 "getT

54、ermRequest" 的输入消息,以及一个名为 "getTermResponse" 的输出消息。<message> 元素可定义每个消息的部件,以及相关联的数据类型。对比传统的编程,glossaryTerms 是一个函数库,而 "getTerm" 是带有输入参数 "getTermRequest" 和返回参数 getTermResponse 的一个函数。说明Types、Message、PortType、Opration为抽象定义。Binding、Port、Service是实现。Port:定义为协议/数据格式绑定与具

55、体web访问地址组合的单个服务访问点。Service:相关服务访问点的集合。问题思考:通过上面的学习我们已经知道如何通过阅读WSDL文档来调用Web服务.但是到目前为止我们还不能通过AJAX的方式来调用我们自己发布的服务.因为我们并不知道我们自己发布服务的SOAP信息,可以使用MyEclipse提供的工具WebServiceExplorerWebServiceExplorer使用WebServiceExplorer使用步骤1. 首先打开web service Explore浏览器à单击右边的WSDL PAGEà在Open WSDL中输入网址:9999/helloworld?wsdl 然后单击go既可2. 在图的左边会罗列出已经注册的web服务类和服务方法(注意JDK1.6不支持SOAP1.2协议.所以在网上发布了wsdl服务如果是基于1.2的则得不到任何有效信息),测试任何一个方法可以得到类似如下格式的代码:SOAP Request Envelope:<soapenv:Envelope xmlns:soapenv="/soap/envelope/" xmln

温馨提示

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

评论

0/150

提交评论