第三十一章 使用带附件的 SOAP

93 阅读2分钟

第三十一章 使用带附件的 SOAP

IRIS 数据平台 Web 客户端和 Web 服务中,可以使用 SOAP 支持向 SOAP 消息添加和使用附件,而不是使用 IRIS MTOM 支持,如上一主题中所述。

此方法比使用 MTOM 需要做更多的工作,因为代码必须直接管理用作附件的 MIME 部分。

发送附件

当使用 IRIS 对带附件的 SOAP 标准的支持时,可以使用以下流程发送附件:

  1. 创建附件。要创建附件:

a. 使用流对象来表示附件数据。使用的类取决于获取流数据所需的确切接口。例如,可以使用 %Library.FileCharacterStream将文件内容读入流中。

b. 创建一个 MIME 部分,它是中 %Net.MIMEPart 的一个实例。

c. 对于 MIME 部分:

  • Body 属性设置为等于流对象。或者设置 Parts 属性,该属性必须中 %Net.MIMEPart实例的列表。
  • 调用 SetHeader() 方法来设置 MIME 部分的 Content-Transfer-Encoding 标头。请确保根据要发送的数据类型正确设置此标头。
  1. 将附件添加到 Web 服务或 Web 客户端。要添加给定附件,请将 MIME 部分插入到相应的属性中,如下所示:
  • 如果从 Web 客户端发送附件,请更新 Web 客户端的附件属性。
  • 如果从 Web 服务发送附件,请更新 Web 服务的 ResponseAttachments 属性。

每个属性都是一个具有常见列表接口的列表(例如,SetAt()Count()GetAt() 方法)。

  1. 更新 Web 客户端或 Web 服务的相应属性来描述附件内容:
  • ContentId

  • ContentLocation

使用附件

Web 服务或 Web 客户端收到带有附件的 SOAP 消息(如带附件的 SOAP 规范所指定)时,会发生以下情况:

  • 将附件插入到适当的属性中:

    • 对于 Web 服务,入站附件放置在附件属性中。
    • 对于 Web 客户端,入站附件放在 ResponseAttachments 属性中。

    这些属性中的每一个都是具有常见列表接口的列表(例如,SetAt()Count()GetAt() 方法)。每个列表元素都是 %Net.MIMEPart 的实例。请注意,MIME 部分可以依次包含其他 MIME 部分。代码负责确定附件的结构和内容。

  • ContentIDContentLocation 属性已更新,以反映入站 SOAP 消息的 Content-IDContent-Location标头。

Web 服务或 Web 客户端可以访问这些属性,从而访问附件。