转自: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. 无比强大!Python抓取cssmoban网站的模版并下载

    Python实现抓取http://www.cssmoban.com/cssthemes网站的模版并下载 实现代码 # -*- coding: utf-8 -*- import urlparse imp ...

  2. 洛谷——P1970 花匠

    https://www.luogu.org/problem/show?pid=1970 题目描述 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定 把这排中的一部分花移走, ...

  3. 减少UIViewController切换的耦合

    我们一般切换UIViewController的时候用的是例如以下代码 #import "UIViewControllerDemo.h" UIViewControllerDemo * ...

  4. 《Java设计模式》之装饰模式

    装饰模式(Decorator) 1.    装饰模式(Decorator)的定义:又名包装(Wrapper)模式.装饰模式以对client透明的方式扩展对象的功能,是继承关系的一个替代方案. 2.   ...

  5. python 深浅拷贝小记

    浅拷贝:只拷贝第一层的数据 深拷贝:相当于克隆 一份,也就是完全复制,和被克隆对象完全没关系. 浅拷贝示例:先定义一个列表 >>> s = [1,'alex','alvin'] &g ...

  6. OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa

    元数据最本质.最抽象的定义为:data about data (关于数据的数据).它是一种广泛存在的现象,在许多领域有其具体的定义和应用. JDBC中的元数据,有数据库元数据(DatabaseMeta ...

  7. hzwer 模拟题 祖孙询问

    祖孙询问 题目描述 已知一棵n个节点的有根树.有m个询问.每个询问给出了一对节点的编号x和y,询问x与y的祖孙关系. 输入输出格式 输入格式: 输入第一行包括一个整数n表示节点个数. 接下来n行每行一 ...

  8. Java Web学习总结(21)——http协议响应状态码大全以及常用状态码

    http协议响应状态码大全以及常用状态码 当我们在浏览网页或是在查看服务器日志时,常会遇到3位数字的状态码,这3位数字是什么意思呢?其实,这3位数字是HTTP状态码,用来表示网页服务器HTTP响应状态 ...

  9. visualvm监控tomcat

    https://my.oschina.net/weidedong/blog/787203

  10. HDU——T 3072 Intelligence System

    http://acm.hdu.edu.cn/showproblem.php?pid=3072 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...