转自: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. 火狐不支持innerText属性,只支持innerHTML属性

    做的一个js的小程序放到火狐上用不了了,原因是innerText不是标准属性,换成innerHTML属性就好,但是可能需要把html标签给去掉

  2. 并查集树数据结构hdu1325

    我的解法就是去构造了一棵树 以数组的存储方式 数组的值存放节点的根. 排除空树 剩下的就是出现环和多根节点的情况 也就是排除森林和有一个节点多个入度的情况 排除森林就用到了并查集 也就是便利数组让其仅 ...

  3. vue23:vue-loader

    vue-loader: 其他loader -> css-loader.url-loader.html-loader..... 后台: nodeJs(模块化) -> require expo ...

  4. .net 项目分层及规范

       1.解决方案命名:公司简称+产品名称.如ABCSOft.BBS 2.解决方案文件夹:以数字排序例如:01.Web表示页面层:02.IBusinessLogic表示业务逻辑接口:03.Bussin ...

  5. AIX 系统补丁格式

    AIX 系统版本标准格式: 5300-06-11-0918 VR00-TL-SP-YYWW     5300-06-11-0918              ^-------- YYWW(2009年第 ...

  6. Firefox 浏览器有用的插件

    1.Undo Closed Tabs Button或Undo Closed Tabs Button (revived) 恢复关闭的标签页 2.NetVideohunter Video Download ...

  7. React开发实时聊天招聘工具 -第三章 React基础知识回顾

    function a (props) { return <h1>hello world{this.props.asd}</h1> } class a extends React ...

  8. jquery正则匹配URL地址

    JQuery代码: var regexp = /((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\u4e00-\u9fa5\-\.\/?\@\% ...

  9. 洛谷 P1705 爱与愁过火

    P1705 爱与愁过火 题目背景 (本道题目隐藏了两首歌名,找找看哪~~~) <爱与愁的故事第一弹·heartache>第三章. 爱与愁大神说这是ta的伤心指数,只不过现在好很多了,翻译只 ...

  10. Volitale

    例1 volatile提醒编译器它后面所定义的变量随时都有可能改变.因此编译后的程序每次须要存储或读取这个变量的时候,都会直接从变量地址中读取数据. 假设没有volatile关键字.则编译器可能优化读 ...