从分析器程序选择转义数据或未转义数据

传递给分析器程序以进行语法分析的 HTTP 请求使用它的转义形式。 URL 中或消息体中表单数据中的保留字符或排除字符作为 %xx 序列出现,其中 xx 是保留字符的 ASCII 十六进制表示法。 分析器可以用以下两种形式将一块 32K 存储器中的请求传递到后续处理阶段:转义序列仍然出现的转义形式,或转义序列转换回原始字符的未转义形式。 使用 EXEC CICS WEB API 命令的 Web 感知应用程序不会使用此机制来接收响应,它们直接从 CICS®请求取消转义。

注意: 本主题包含产品敏感的编程接口和关联的指导信息。
为 DPL 定义本地资源 说明了转义及其用途。 转义和未转义仅应用到 HTTP 请求的以下元素:
  • 请求行的 URL 部分,包括任何查询字符串。 查询字符串可能是来自具有 GET 方法的表单的数据。
  • 从具有 POST 方法的表单返回的表单数据以及缺省编码 application/x-www-form-urlencoded。 此数据显示在消息体中。 选择 MRO 的访问方法 说明了有关表单数据的更多信息。
如果要以未转义格式传递 32K 存储器块中的请求,那么分析器可以将数据从转义格式转换为未转义格式,或者让 CICS 执行转换。
  • 要以转义形式传递请求,请将分析器中的 WBRA_UNESCAPE 设置为 WBRA_UNESCAPE_NOT_REQUIRED。 WBRA_UNESCAPE_NOT_REQUIRED 是缺省值。
  • 要以未转义的形式传递请求并让 CICS 执行转换,请在分析器中将 WBRA_UNESCAPE 设置为 WBRA_UNESCAPE_REQUIRED。
  • 要在分析器执行转换以后,以未转义形式传递请求,请将 WBRA_UNESCAPE 设置为 WBRA_UNESCAPE_NOT_REQUIRED。

使用 EXEC CICS WEB API 命令的 Web 感知应用程序不使用 COMMAREA 机制来接收和发送响应,它们直接从 CICS请求取消转义。 对于使用 EXEC CICS WEB API 命令的 Web 感知应用程序,当您使用 WEB READ FORMFIELD 命令或表单字段浏览命令从请求中抽取表单数据时, CICS 将执行取消转义,并以未转义的形式返回数据。 当使用 WEB EXTRACT 命令从请求抽取查询字符串时,数据以它的转义形式返回。

如果您正在编写具有可以通过 CICS Web Support 或通过 CICS 业务逻辑接口运行的 COMMAREA 接口的应用程序,请确保 WBRA_UNESCAPE 设置为 WBRA_UNESCAPE_NOT_REQUIRED ,并确保将任何取消转义委派给应用程序。 如果未执行此操作,那么应用程序将由 CICS 业务逻辑接口传递未转义的数据,并由 CICS Web Support 传递已转义的数据,这可能会导致不可预测的结果。