文章
· 八月 11 阅读大约需 2 分钟

第七章 解析时使用进程私有全局变量

第七章 解析时使用进程私有全局变量

默认情况下, Web 客户端在解析请求或响应时通常使用本地数组内存。可以强制它改用进程私有全局变量;这使 Web 客户端能够处理非常大的消息。

为此,请指定 Web 服务类的 USEPPGHANDLER 参数,如下所示:

Parameter USEPPGHANDLER = 1;

如果此参数为 1,则 Web 客户端在解析请求或响应时始终使用进程私有全局变量。如果此参数为 0,则 Web 客户端始终使用本地数组内存来实现这些目的。如果未设置此参数,则 Web 客户端使用默认值,通常是本地数组内存。

可以在运行时覆盖此参数。为此,请设置 Web 客户端实例的 UsePPGHandler 属性。

创建自定义 SOAP 消息

在特殊情况下,可能希望 Web 客户端发送自定义 SOAP 消息。基本要求如下:

  1. 创建 %SOAP.WebRequest的子类并设置其 LOCATION 参数或 Location 属性。
  2. 在此子类中,创建一个方法来发送 SOAP 消息。此方法必须创建 %Library.CharacterStream的实例,并将要发送的 SOAP 消息放入其中。有责任确保消息格式正确。
  3. 该方法接下来必须调用 SendSOAPBody() 方法:
method SendSOAPBody(Action As %String, 
                    OneWay As %Boolean = 0, 
                    Request As %CharacterStream, 
                    ByRef Response) as %Status
  • Action 是一个字符串,它给出了要执行的 SOAP 操作的名称。
  • OneWay 是一个真/假标志,控制消息是否是单向的。
  • Request%Library.CharacterStream 的一个实例,包含当前语言环境的字符集中的 SOAP 请求正文。
  • Response 是响应,通过引用作为字符流或 %XML.Node 的实例返回。

如果调用 SendSOAPBody()Response 为空,则该方法会将 Response 设置为中 %Library.CharacterStream 的实例。此流包含当前语言环境的字符集中的 SOAP 响应主体。

如果当调用 SendSOAPBody()Response%Library.CharacterStream 的一个实例,则该方法将更新 Response 以包含当前语言环境的字符集中的 SOAP 响应主体。

如果当调用 SendSOAPBody()Response 是中 %XML.Node 的一个实例,则该方法会更新 Response 以指向主体 DOM

%SOAP.WebRequest%SOAP.WebClient 的子类,因此可能需要设置其他参数和属性。还可以添加 SOAP 标头,如其他地方所述。有关更多说明,请参阅 %SOAP.WebRequest的类文档。

讨论 (0)1
登录或注册以继续