锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

第七十六章 方法关键字 - SoapAction

时间:2023-06-05 01:37:00 gsop光电传感器

文章目录

  • 第七十六章 方法关键字 - SoapAction
  • 用法
  • 详情
  • 默认
  • WSDL的关系
  • 对新闻的影响

第七十六章 方法关键字 - SoapAction

指定当通过HTTP以此方法为例web方法调用时,在HTTP头中使用的SOAP操作。仅适用于定义web服务web客户端的类。

用法

指定这种方法web方法时在HTTP头中使用的SOAP操作时,请使用以下语法:

Method name(formal_spec) As returnclass [ WebMethod, SoapAction = soapaction ]  { 
            //implementation } 

其中soapaction以下一:

  • “[default]”—SOAP默认操作值,即NAMESPACE/Package.Class.Method
  • "customValue" -使用customValue作为SOAP操作。
    该值应为标识SOAP请求意图的URI

如果指定了自定义值,则必须在web服务的每个web方法中是唯一的,或者你必须为每个web方法指定SoapRequestMessage关键字(以及使用关键字的唯一值)。

  • “” -以空值为例SOAP操作。这种情况很少见。

详情

web方法SOAP路由请求通常用于动作SOAP消息
例如,防火墙可用于适当的过滤SOAP请求消息
InterSystems IRIS web服务使用SOAP操作(结合信息本身)确定如何处理请求信息。

允许该关键字指定为web方法调用此方法时使用HTTP SOAP动作。
对于SOAP 1.1, SOAP动作包含在SOAPAction HTTP报头中。
对于SOAP 1.2,它包含在Content-Type HTTP报头中。

默认

如果忽略SoapAction关键字,SOAP动作形式如下:

NAMESPACE/Package.Class.Method 

其中NAMESPACEweb服务NAMESPACE参数的值,Package.Classweb服务类的名称,Methodweb方法的名称。

WSDL的关系

SoapAction关键字影响web服务WSDL部分。
例如,以下web方法:

Method Add(a as %Numeric,b as %Numeric) As %Numeric [ SoapAction = MySoapAction,WebMethod ] { 
             Quit a   b } 

对于这个web服务WSDL部分如下:

<binding name="MyServiceNameSoap" type="s0:MyServiceNameSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="Add"> <soap:operation soapAction="MySoapAction" style="document"/> <input> <soap:body use="literal"/> input> <output> <soap:body use="literal"/> output> operation> binding> 

默认情况下,如果方法没有指定SoapAction关键字,元素可能会像下面这样:

<soap:operation soapAction="http://www.mynamespace.org/ROBJDemo.BasicWS.Add" style="document"/>

如果使用SOAP向导从WSDL生成 web服务服务或客户端,将此关键字设置为适合于该WSDL的关键字。

对消息的影响

对于前面显示的web方法web服务期望收到以下形式的请求消息(对于SOAP 1.1):

POST /csp/gsop/ROBJDemo.BasicWS.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
Host: localhost:8080
Connection: Close
Accept-Encoding: gzip
SOAPAction: MySoapAction
Content-Length: 379
Content-Type: text/xml; charset=UTF-8


<SOAP-ENV:Envelope >...

默认情况下,如果方法没有指定SoapAction关键字,SoapAction行可能会像下面这样:

SOAPAction: http://www.mynamespace.org/ROBJDemo.BasicWS.Add

注意,对于SOAP 1.2,细节略有不同。
在这种情况下,web服务期望收到如下形式的请求消息:

POST /csp/gsop/ROBJDemo.BasicWS.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
Host: localhost:8080
Connection: Close
Accept-Encoding: gzip
Content-Length: 377
Content-Type: application/soap+xml; charset=UTF-8; action="MySoapAction"


<SOAP-ENV:Envelope >...
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章