WSDL绑定-soapAction值

WSDL绑定-soapAction值,soap,wsdl,endpoint,Soap,Wsdl,Endpoint,在下面的WSDL摘录中,在 <soap1:operation style="document" soapAction="petition" 这就是我发现的。。。回答我自己的问题 soapAction属性表示服务提供者的意图,它很可能是由服务框架构建的 soapAction帮助服务提供者将soap操作映射到意图解析器。无论出于何种目的,它都是被调用来服务操作的例程 soapAction属性是服务提供者框架唯一标识调用哪个入口点或例程来服务操作的一种方法 因此,soapAction属性可以是

在下面的WSDL摘录中,在

<soap1:operation style="document" soapAction="petition"

这就是我发现的。。。回答我自己的问题

soapAction属性表示服务提供者的意图,它很可能是由服务框架构建的

soapAction帮助服务提供者将soap操作映射到意图解析器。无论出于何种目的,它都是被调用来服务操作的例程

soapAction属性是服务提供者框架唯一标识调用哪个入口点或例程来服务操作的一种方法

因此,soapAction属性可以是任何值,其模式可能由框架决定。在我使用的框架中,soapAction的值对框架来说并不重要,其中soapAction属性值只是对处理调用的入口点的引用。
soapAction=“呈请”
元素的
soap1:operation
属性将包含在HTTP请求消息中,例如:

POST /StockQuote HTTP/1.1
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "petition"
SOAPAction HTTP请求头字段可用于指示SOAP HTTP请求的意图。该值是标识意图的URI。SOAP不限制URI的格式或特定性,也不限制它是可解析的。HTTP客户端在发出SOAP HTTP请求时必须使用此标头字段

SOAPAction标头字段的存在和内容可由防火墙等服务器用于在HTTP中适当过滤SOAP请求消息。空字符串(“”)的头字段值表示SOAP消息的意图由HTTP请求URI提供。无值表示没有消息意图的指示

示例:

SOAPAction: "/Services/ReincarnationRequestPortTypeEndpoint/petition"
SOAPAction: "petition"
SOAPAction: ""
SOAPAction:

当消费者出于特定目的使用soapAction属性时,以及当我们更新WSDL(主要是soapAction字段)时,我们遇到了类似的情况,它破坏了消费者代码

基本上,自SOAP1.1以来,soapAction没有任何用途,只是用于文档,可以为空

如另一个答案中所述,它可以描述操作的意图,但同样是出于文档目的

我们使用它的方式如下所示

<soap:operation soapAction="http://company.com.au/hub/services/NotificationApplication/GenerateDocumentNotification?applicationVersion=NotificationApplication_v1.8.9"/>

另外,soapAction在SOAP1.2中被完全删除,所以最好不要太依赖它

<soap:operation soapAction="http://company.com.au/hub/services/NotificationApplication/GenerateDocumentNotification?applicationVersion=NotificationApplication_v1.8.9"/>