文章目录
- 第四十一章 使用 二进制 SOAP 格式
- 介绍
- 扩展 `Web` 服务的 `WSDL`
第四十一章 使用 二进制 SOAP 格式
数据平台 SOAP 支持提供了可选的专有二进制 SOAP 格式,当发送和接收大型 SOAP 消息并希望最小化消息大小时,该格式非常有用。
Web 服务可以接收 二进制 SOAP 格式或常规 SOAP 格式的 SOAP 请求。无需任何参数即可启用此行为。 Web 客户端仅在配置为二进制 SOAP 格式时才使用二进制 SOAP 格式。
注意:如果 Web 服务或 Web 客户端使用此专有二进制 SOAP 格式,则无法将 WS-Security 或 WS-Policy 功能与此 Web 服务或客户端一起使用。请参阅保护 Web 服务。
介绍
IRIS 二进制 SOAP 通过 HTTP 消息传输,如下所示:
- 该消息使用
POST方法。 Content-Type始终是“application/octet-stream”。- 主体是使用专有协议的对象的二进制表示。
- 二进制
SOAP请求包含以下形式的HTTP ISCSoap标头:
ISCSoap: NAMESPACE/Package.Class.Method
- 支持
SOAP会话。会话信息通过使用常规Web会话cookie来维护。但是,不支持SOAP Web客户端和Web服务的SessionCookie属性,因为二进制SOAP不使用CSPCHD专有SOAP标头。
以下示例显示了二进制 SOAP 请求:
POST /csp/mysamples/GSOP.WebServiceBinary.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
Host: devsys:8080
Connection: Close
ISCSoap: https://www.myapp.org/GSOAP.WebServiceBinary.Divide
Content-Type: application/octet-stream
Content-Length: 9000085hdBinaryClient.MyAppSoap.Dividearg1arg2t
请注意,只有 SOAP 信封及其内容会受到影响。HTTP 标头不受影响。
扩展 Web 服务的 WSDL
任何 Web 服务都可以接收 二进制 SOAP 格式或常规 SOAP 格式的 SOAP 请求。如果 Web 服务收到二进制请求,则会发送二进制响应。否则,它会发送常规响应。无需任何参数即可启用此行为。
可以扩展 Web 服务的 WSDL,以便:
WSDL公开声明,该Web服务除了支持通常的SOAP格式外,还支持IRIS二进制SOAP格式。- WSDL 包含有关使用
IRIS二进制SOAP格式的信息。
如果需要,这允许任何 IRIS 网络客户端正确地以这种格式发送消息。
要以这种方式扩展 IRIS Web 服务的 WSDL,请将 Web 服务的 SOAPBINARY 参数设置为 1。