美文网首页
第七章 定义单向 Web 方法

第七章 定义单向 Web 方法

作者: Cache技术分享 | 来源:发表于2024-07-28 08:50 被阅读0次

    第七章 定义单向 Web 方法

    定义单向 Web 方法

    对于 Web 服务,通常,当执行 Web 方法时,即使该方法没有返回类型且不返回任何内容,也会返回 SOAP 消息。此 SOAP 响应消息具有以下一般格式:

    <?xml version="1.0" encoding="UTF-8" ?>
    <SOAP-ENV:Envelope 
    xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' 
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns:s='http://www.w3.org/2001/XMLSchema'>
      <SOAP-ENV:Body>
       <MethodNameResponse xmlns="http://www.myapp.org"></MethodNameResponse>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    

    在极少数情况下,可能需要将 Web 方法定义为单向的。此类方法不得返回任何值,并且请求消息不应有任何 SOAP 响应。要定义单向 Web 方法,请将方法的返回类型定义为 %SOAP.OneWay。在这种情况下:

    • WSDL 没有定义为该 Web 方法定义的输出。
    • Web 服务不返回 SOAP 消息(除非服务添加了标头元素;请参阅小节)。也就是说,HTTP 响应消息不包含任何 XML 内容。

    注意:通常不应使用单向方法。请求-响应对更为常见、更受支持且更受期待 — 即使对于没有返回类型的方法也是如此。

    单向 Web 方法和 SOAP 标头

    如果 Web 方法添加了标头元素,则 HTTP 响应确实包含 XML 内容,如下所示:

    <?xml version="1.0" encoding="UTF-8" ?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' ...
      <SOAP-ENV:Header>
         header elements as set by the web service
     </SOAP-ENV:Header>
      <SOAP-ENV:Body></SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    

    动态地使 Web 方法单向

    还可以动态地将 Web 方法重新定义为单向。为此,请在 Web 方法的定义中调用 Web 服务的 ReturnOneWay()。例如:

    Method HelloWorldDynamic(oneway as %Boolean = 0) As %String [ WebMethod ]
    {
      If oneway {Do ..ReturnOneWay() }
      Quit "Hello world "
    }
    

    如果参数为 0,则此 Web 方法返回一个 SOAP 响应,其主体包含 Hello world。如果参数为 1,则此方法不返回 SOAP 响应。

    相关文章

      网友评论

          本文标题:第七章 定义单向 Web 方法

          本文链接:https://www.haomeiwen.com/subject/jtnbhjtx.html