第四十一章 使用 二进制 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: 90
00085hdBinaryClient.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
。
网友评论