什么是SOAP

soap协议中的soap结构体 soup协议中的soap结构体 struct SOAP_STD_API soap { short state; /* 0 = uninitialized, 1 = initialized, 2 = copy of another soap struct */ short version; /* 1 = SOAP1.1 and 2 = SOAP1.2 (set automat 阅读详情

   什么是SOAP?

   .SOAP指简易对象访问协议

    SOAP是一种通信协议

    SOAP用于应用程序之间的通信

     SOAP使用一种用于发送消息的格式

     SOAP被设计用来通过因特网进行通信

     SOAP独立于平台

     SOAP独立与语言

    SOAP基于XML  

     SOAP很简单的扩展

     SOAP允许您绕过防火墙

     SOAP将被作为W3c标准来发展

为什么是SOAP?

   目前应用程序通过远程过程调用(RPC),在DCOM与CORBA等对象之间进行通信,但是HTTP不是维设计。RPC会产生兼容问题,防火墙阻止。

   SOAP构建模块:

一条SOAP消息就是一个普通的XML文档,包含以下元素:

   必需的Envelope元素,可把此XML文档标示为一条SOAP消息

   可选的Header元素,包含头部信息

   必需的Body元素,包含所有的调用和响应消息

   可选的Fault元素,提供有关在处理此消息所发生的错误消息

SOAP Envelop元素

必需的SOAP的Envelop元素是SOAP消息的根元素。它可把XML文档定义为SOAP消息。

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
  ...
  Message information goes here
  ...
</soap:Envelope>
encodingStyle属性

SOAP的encodingStyle属性用于定义文档中使用的数据类型。被应用到元素的内容及元素的所以的子元素上。

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
SOAP Header元素

可选的SOAP Header元素包含有关SOAP消息的应用程序专用信息(比如认证,支付等)。如果Header元素被提供,则它必需是Envelope元素的第一个子元素。

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
<m:Trans
xmlns:m="http://www.w3school.com.cn/transaction/"
soap:mustUnderstand="1">234</m:Trans>
</soap:Header>

...
...

</soap:Envelope>

上面的例子包含了一个带有一个 "Trans" 元素的头部,它的值是 234,此元素的 "mustUnderstand" 属性的值是 "1"。

SOAP 在默认的命名空间中 ("http://www.w3.org/2001/12/soap-envelope") 定义了三个属性。这三个属性是:actor、 mustUnderstand 以及 encodingStyle。这些被定义在 SOAP 头部的属性可定义容器如何对 SOAP 消息进行处理。

actor属性:

  通过沿着消息路径经过不同的断点,SOAP消息可从某个发送者传播到某个接受则。并非SOAP消息的所有部分均打算传送到SOAP消息的最终断点,不过,另一个方面,也许打算传送消息路径上的一个或多个端点。

   actor寻址到特定的端点

soap:actor="http://www.w3school.com.cn/appml/">
  mustUnderstand属性

  SOAP的mustUnderstand属性永远标示标题像对于要对其处理的接受则来说是强制的还是可选的。

  假如您向Header元素的某个子元素添加了“mustUnderstand="1",则它可指示处理头部的接受则必需认可此元素,假如接受则无法认可此元素,则在处理此头部是失效。


SOAP Body元素

必需的SOAP Body元素可包含打算传送到消息最终端点的实际SOAP消息。

SOAP Body元素的直接子元素可以是合格的命名空间。

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body>
   <m:GetPrice xmlns:m="http://www.w3school.com.cn/prices">
      <m:Item>Apples</m:Item>
   </m:GetPrice>
</soap:Body>

</soap:Envelope>

上面的例子请求苹果的价格。请注意,上面的 m:GetPrice 和 Item 元素是应用程序专用的元素。它们并不是 SOAP 标准的一部分。

而一个 SOAP 响应应该类似这样:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body>
   <m:GetPriceResponse xmlns:m="http://www.w3school.com.cn/prices">
      <m:Price>1.90</m:Price>
   </m:GetPriceResponse>
</soap:Body>

</soap:Envelope>
SOAP Fault元素

可选的SOAP Fault元素永远指示错误消息。

如果已提供了Fault元素,则它必需是Body元素的子元素。在一条SOAP消息中,Fault元素只能出现一次。

<faultcode> 提供识别故障的代码 <faultstring>提供人阅读的有关故障的说明

<faultactor> 提供是谁引发故障的信息 <detail> 存留涉及Body元素的应用程序专用错误信息

误 描述
VersionMismatch SOAP Envelope 元素的无效命名空间被发现
MustUnderstand Header 元素的一个直接子元素(带有设置为 "1" 的 mustUnderstand 属性)无法被理解。
Client 消息被不正确地构成,或包含了不正确的信息。
Server 服务器有问题,因此无法处理进行下去。







盘点天才少年稚晖君彭志辉的知识体系 一个杰出工程师的工作区间和装备 阅读详情

相关推荐

Claude Code 使用 OpenAI Codex(GPT-5.3-Codex)完整配置教程

通过 LiteLLM 可以让 Claude Code 调用任何模型,包括:OpenAIDeepSeekGemini本地模型↓↓优点:不依赖 Anthropic API可自由切换模型支持统一 AI Gateway这种“LLM Gateway 架构”正在成为 AI 开发工具的主流实践。

Jacobe_zhao的博客 1万+

SOAP Header中的mustUnderstand属性

  最近复习服务计算相关课程,讲到SOAP Header属性里的mustUnderstand属性。这里简单的说一下我对mustUnderstand的理解。   在soap中,header是可选项,header由header blocks(header entities)组成。其实header项是可选的,并不是必须的。header让处于ultimate node之前的intermediaries能...

weixin_30394333的博客 988

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 775

SOAP概述

一、SOAP概述      SOAP(Simple Object Access Protocol),它是一种标准消息传递协议,通常是Web Service的事实标准。SOAP是以XML为基础,SOAP消息格式是由XML Schema模式定义,通过XML命名空间使SOAP具有很强的扩展性。      SOAP message:SOAP XML文档实例,通常通过其他某些网络协议的有效载荷来携带SO

wkwanglei的专栏 1423

k8s重装1.28.2+calico+踩坑收集+InPlacePodVerticalScaling

它提供了从镜像构建(通过 Dockerfile)、镜像管理(上传、下载、存储等)、容器创建、运行、网络配置(可以为容器分配自定义的网络,如 bridge 网络、host 网络等)到容器编排(通过 Docker Compose 可以简单地编排多个容器的启动和关联关系)等一整套完整的解决方案。它的核心功能是启动和管理容器的生命周期。sudo apt update这个可以经常用,是来更新软件包的,它不下载,所以没风险,但是经常会报错,别问,问就是某种强大的力量,所以用镜像或者代理或者巴拉巴拉。

SsjjsS2019的博客 2553

DLL导出函数名隐藏实战:三种方法保护代码安全

在Windows软件开发中,动态链接库(DLL)的导出函数名是模块间通信的关键标识,也是逆向工程的重要突破口。理解PE文件格式中的导出表结构是掌握DLL工作原理的基础,它记录了函数地址、名称和序号的映射关系。通过隐藏或混淆这些导出名称,可以有效增加代码分析的难度,提升软件的知识产权保护和安全性。这一技术在软件保护、游戏反作弊和安全组件中具有重要价值。本文聚焦DLL导出函数名隐藏,结合Dependencies工具分析,详细解析仅序号导出、导出转发器和运行时动态修改三种实用方案,为开发者提供从原理到实践的完整指

weixin_29315091的博客 307

什么是soap

SOAP (Simple Object Access Protocol) 顾名思义,是一个严格定义的信息交换协议,用于在Web Service中把远程调用和返回封装成机器可读的格式化数据。事实上SOAP数据使用XML数据格式,定义了一整套复杂的标签,以描述调用的远程过程、参数、返回值和出错信息等等。而且随着需要的增长,又不得增加协议以支持安全性,这使SOAP变得异常庞大,背离了简单的初衷。另一方面,各个服务器都可以基于这个协议推出自己的API,即使它们提供的服务及其相似,定义的API也不尽相同,这又导致了W

xmh_sxh_1314的博客 1153

ROS2多线程处理RTSP视频流避坑指南:OpenCV解码丢帧问题解决方案

本文针对ROS2中处理RTSP视频流时OpenCV解码丢帧的常见问题,提供了专业的解决方案。通过深入分析单线程模型的瓶颈,提出并详细拆解了基于生产者-消费者多线程模型的健壮实现方案,有效分离数据采集与处理,从而显著提升视频流的稳定性和流畅度。

weixin_29199873的博客 168

SOAP

SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP

gu0072003的专栏 881

基于Python的IMF经济数据爬取与分析:从入门到实战

本文详细介绍了如何使用Python爬取国际货币基金组织(IMF)的经济数据,包括最新的爬虫技术、反反爬策略、数据解析与存储方法。文章从IMF数据源分析开始,逐步讲解如何构建一个完整的爬虫系统,并提供了详细的代码实现和优化建议。通过本文,读者将掌握爬取复杂国际组织数据的关键技术,并能将这些技术应用于其他类似的数据获取场景。关键词:Python爬虫、IMF数据、经济数据获取、数据清洗、反爬策略IMF Data (data.imf.org) - 主要数据门户。

2201_76125261的博客 1439

高通开发系列 - System之FOTA/DFOTA包制作和升级

高通开发系列 - System之FOTA/DFOTA包制作和升级

fulinux的博客 4222

[SOAP] SOAP协议基础知识

介绍了一下SOAP和WSDL。以及WSDL的解读,SOAP请求的使用。

zlllc的博客 2662

从 ST22 到根因定位:ABAP Dumps 全景排查指南(含典型 Dump 案例、修复套路与云时代实践)

本文系统介绍了SAP系统中ABAP短转储(Dump)的分析方法。首先指出短转储是程序运行时无法处理的错误导致系统强制终止执行。文章详细解析了短转储报告各区块的作用:从概述性的Short Text和What happened,到核心的Error Analysis和Source Code Extract,再到关键的系统字段Contents of system fields和调用栈Active Calls/Events。针对不同场景提供了排查建议:客户代码应建立可控边界,标准对象优先查阅SAP Notes。最后推

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 485

【SOAP-WebService系列】SOAP简述

文章目录SOAP是什么SOAP和HTTP SOAP是什么 简述1:SOAP 是用于访问传统Web服务(SOAP-WebServices)的协议。 简述2:SOAP=HTTP+XML+RPC SOAP(Simple Object Access Protocol,即简单对象访问协议) 是广泛用于SOAP-WebServices(传统Web服务)交换数据的一种协议规范。 此标准由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,并得到 莲花(Lotus)、康柏(C

无数_Mirage的博客 9447

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

什么是SOAP,SOAP是什么

SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP

做最好的自己 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SOAP Action揭密

最近在工作中遇到一个SOAP Action的问题,正好拿出来研究一把。据说SOAPAction header这玩意在SOAP 1.1规范中着实让不少开发者喝了一壶。真的有这么难理解么?我想这应该是因为SOAP有两种非常不同的使用方式,而SOAPAction主要是被用来支持其中应用较少的一种方式的原因。在我看来,这种方式也非常有价值。让我们先看看SOAP 1.1规范是怎么定义HTTP SOA

碧荷故乡_胡奇的专栏 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

soap java实现_Java实现SOAP协议

SOAP是把基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。准备:1. 准备一个web server。Tomcat 下载地址 http://tomcat.apache.org/本例使用版本 apache-tomcat-7.0.54-windows-x64.zip2. 写一个servlet send用来发送一个SOAP的message并添加一个附件。3. 写一个servlet rec...

weixin_39836726的博客 4656

SOAP注入

soap注入就是在webservice 的soap协议,连接web服务和客户端的接口处的注入,通过在发送的soap消息参数内添加注入语句来达到注入效果,常见的有sql注入,也有xml注入,代码注入。

2301_80127209的博客 1402

SOAP详解

]和[in,out]参数的值。这些值被编码成为一个显著的调用元素的子元素,这个调用元素具有SOAPMethodName HTTP头的方法名和名域URI。调用元素必须出现在标准的SOAP 和元素内(后面会更多讨论这两个元素)。下面是一个最简单的SOAP方法请求: POST /string_server/Object17 HTTP/1.1 Host: 209.110.197.2 Content-Typ

tanliyoung的专栏 3175

SOAP 介绍

简介 SOAP(Simple Object Access Protoco)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于 XML 的协议。此协议规范由 IBM、Microsoft、UserLand 和 DevelopMentor 在1998年共同提出,并得到 IBM,莲花(Lotus),康柏(Compaq)等公司的支持,于2000年提交给万维网联盟(World Wide Web Consortium;W3C)。现在,SOAP 协议规范由万维网联盟的 XML工作组维护。SOAP 1

richardman的专栏 2221

SOAP协议

简介 SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。简单来说,SOAP 是用于访问网络服务的协议。 为啥要使用SOAP? 对于应用程序开发来说,使程序之间进行因特网通信是很重要的。 目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。 通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器

豪华的博客 1142

Soap1.1和soap1.2

一、Soap1.1和soap1.2 的实现  SOAP协议有两个版本,1.1和1.2  如何发布SOAP1.2服务端(掌握) 在实现类中加入如下注解@BindingType(SOAPBinding.SOAP12HTTP_BINDING)  如果Jaxws不支持SOAP1.2服务端发布,说明JDK版本较低在1.7以下,可在服务端引入第三方JAR(jaxws-ri-2.2.8)(网上下载即可)...

鸭梨山大山大的博客 4549

soap soapenv区别_[SOAP] 使用PHP的SOAP时SOAP-ENV错误?

你的位置:问答吧-> PHP-> 问题详情[SOAP] 使用PHP的SOAP时SOAP-ENV错误?刚开始使用PHP自带的SOAP函数。在运行时服务器端(soap_server.php)出现如下的提示:[Copy to clipboard] [ - ]CODE:SOAP-ENV:ClientBad Reques...

weixin_39821330的博客 984
上一篇: SOAP的介绍
下一篇: SOAP HTTP绑定
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值