转自:https://blog.csdn.net/u014066037/article/details/51724658

使用SOAP的XML消息传递的简易流程图:

详细步骤如下:

(1)服务请求者的应用程序创建一条SOAP消息,将此信息和服务提供者的网址一起提供给SOAP基础结构(例如一个SOAP客户机运行时)。SOAP客户机运行时与一个底层网络协议(例如HTTP)交互,然后在网络上将SOAP消息发送出去。

(2)网络基础结构将消息传送到服务提供者的SOAP运行时(例如一个SOAP服务器)。SOAP服务器将请求消息路由到服务提供者的Web服务。如果应用程序需要,SOAP运行时负责将XML消息转换为特定于编程语言的对象。这个转换由消息中可以找到的编码模式所控制。

(3) Web 服务负责处理请求信息并生成一个响应。该响应也是一条SOAP消息。响应的SOAP消息被提供给SOAP运行时,其目的地是服务请求者。在HTTP上的同步请求/响应的情况中,联网协议的底层请求/响应本质用于实现消息传递的请求/响应。SOAP运行时将SOAP消息响应发送到网络上的服务请求者。
(4)响应消息由服务请求者节点上的联网基础结构接收。消息会经过整个SOAP基础结构;可能会将XML消息转换为目标编程语言中的对象。然后,响应消息被提供给应用程序

  1. public interface Hello
  2. {
  3. public String sayHelloTo(String name);
  4. }
假设有上述接口定义的服务存在
  • 客户端在远程调用sayHelloTo方法时,提供一个名字,期望返回一个字符串
  • 假设Java RMI、CORBA、DCOM都不存在,开发者必须负责将方法调用串行化,并把消息发给远程服务器
  • 一个简单的方式是使用XML
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0"?>
  2. <Hello>
  3. <sayHelloTo>
  4. <name>John</name>
  5. </sayHelloTo>
  6. </Hello>
  7. </span>
用XML打包请求

  • 将接口名作为根结点
  • 方法和参数作为结点
将请求发送给服务器
  • 不创建自己的TCP/IP消息,利用HTTP
  • 将请求封装成HTTP POST请求格式发出
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0"?>
  2. <Hello>
  3. <sayHelloToResponse>
  4. <message>Hello John, How are you?</message>
  5. </sayHelloToResponse>
  6. </Hello>
  7. </span>
服务器接收到请求,解码XML,处理请求,然后以XML格式向客户发送响应
  • 与请求比较,方法的结点名字变为请求的方法名后缀Response
  • 客户程序知道自己调用了哪个方法,根据方法名后缀Response寻找调用方法的返回值

5.使用SOAP的XML消息传递的更多相关文章

  1. 2.Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)-

    转自:https://blog.csdn.net/a214919447/article/details/55260411 SOAP(Simple Object Access Protocol,简单对象 ...

  2. 基于SOAP的xml网络交互心得

    感谢小二同学将遇到的问题分享给我们,再此给以掌声.如果看不懂下面文章的建议查找一下HTTP协议的文艺,对HTTP协议要有个概念. XML网络交互心得 目录 一.     xml解析 1.根路径下 2. ...

  3. PHP SOAP 发送XML

    <?php $xmldata = <<<EOT <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap. ...

  4. 【转】 Pro Android学习笔记(七十):HTTP服务(4):SOAP/JSON/XML、异常

    目录(?)[-] SOAP JSON和XMLPullParser Exception处理 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog. ...

  5. PHP SOAP 提交XML

    <?php $xmldata = <<<EOT <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap. ...

  6. 捕捉soap的xml形式

    下面是我以前对Php的soap接口进行抓包分析出的结果,这个分析在当服务端或者客户端的Php没有安装soap模块时,可以使用构建xml的方式实现相同的功能 服务端: $data = $HTTP_RAW ...

  7. c# 对SOAP返回XML字符串的解析方法

    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Head ...

  8. [ Web Service ] [ SOAP ] [ JSON ] [ XML ] 格式轉換

    JSON格式產生器_Demo JSON格式產生器_ObjGen - Live JSON Generator JSON格式整理_JSON Formatter & Validator Online ...

  9. soap使用xml调用webapi后返回xml信息进行JSON转换处理,以顺丰查询接口为例

    expressUrl = string.Format(可以卸载配置文件的域名URL + "/bsp-oisp/ws/expressService"); StringBuilder ...

随机推荐

  1. ECNUOJ 2615 会议安排

    会议安排 Time Limit:1000MS Memory Limit:65536KB Total Submit:451 Accepted:102 Description 科研人员与相关领域的国内外同 ...

  2. COGS——T 1215. [Tyvj Aug11] 冗余电网

    http://www.cogs.pro/cogs/problem/problem.php?pid=1215 ★   输入文件:ugrid.in   输出文件:ugrid.out   简单对比时间限制: ...

  3. Spring可扩展Schema标签

    基于Spring可扩展Schema提供自己定义配置支持 http://blog.csdn.net/cutesource/article/details/5864562 WARN : org.sprin ...

  4. java无依赖读取Excel文件

    说到Java读取Excel文件,用得多的当然是POI或jxls,但今天在看一本书的时候.当中提到使用JdbcOdbcDriver这个驱动类在不依赖第三方库的情况下也能够完毕对Excel文件的读取操作, ...

  5. CheckBox:屏蔽setChecked方法对OnCheckedChangeListener的影响

    对于CheckBox的OnCheckedChangeListener,有两种情况下会被触发: (1)用户点击了一下CheckBox: (2)代码中调用了setChecked(boolean check ...

  6. Python str 与 bytes 类型(Python2/3 对 str 的处理)

    本文均在 Python 3 下测试通过,python 2.x 会略有不同. 1. str/bytes >> s = '123' >> type(s) str >> ...

  7. Linux软件万花筒

    650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/att ...

  8. OpenCV中InputArray和OutputArray使用方法

    原文链接:http://blog.csdn.net/yang_xian521/article/details/7755101 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArr ...

  9. installp 操作

    installp  软件安装和升级工具     1.查看某个已应用更可被提交或拒绝的文件集) installp -s   2. 应用更新TCP/IP软件( /usr/sys/inst.images ) ...

  10. 用vuex构建单页

    原文地址:点我 前言:在最近学习 Vue.js 的时候,看到国外一篇讲述了如何使用 Vue.js 和 Vuex 来构建一个简单笔记的单页应用的文章.感觉收获挺多,自己在它的例子的基础上进行了一些优化和 ...