第十二章 在 Web 服务中定义自定义处理 - 实现 ProcessBody()
元素。该流包含
XML 片段,而不是完整的 XML 文档。
responseBody,是序列化为 %Library.CharacterStream 实例的响应主体。此流通过引用传递,最初为空。如果在 Web 服务中实现此方法,则该方法应执行以下操作:
- 检查操作并相应地分支。例如:
if action["action1" {
//details
}
- 使用
requestBody的Read()方法获取SOAP。例如:
set request=requestBody.Read()
- 使用
$EXTRACT等工具解析此流。例如:
set in1=""
set in2=" "
set contents=$extract(request,$length(in1)+1,*-$length(in2))
- 如果在处理请求期间发生错误,则使用
ReturnFault()方法以通常的方式返回错误。 - 使用响应流的
Write()方法写入将成为 子元素的XML片段。例如:
set in1=""
set in2=" "
set request=requestBody.Read()
if ($extract(request,1,$length(in1))'=in1) || ($extract(request,*-$length(in2)+1,*)'=in2) {
do responseBody.Write("Bad Request: "_request)
quit 1
}
set out1=""
set out2=" "
do responseBody.Write(out1)
do responseBody.Write($extract(request,$length(in1)+1,*-$length(in2)))
do responseBody.Write(out2)
- 如果创建了响应流,则返回
1。否则,返回 0,这导致运行与给定操作相关的Web方法。