WEB PARSE URL
将 URL 字符串细分为其组成部分。
语法
条件: INVREQ 和 LENGERR
此命令是线程安全的。
NOHANDLE、RESP 和 RESP2是常用选项,可添加到所有 EXEC CICS 命令中以处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项.
描述
使用 URL ,您可以将 URL分解为各个组成部分:协议、主机、端口、路径和查询字符串。 URL组成部分解释了这些组成部分。 您可以使用此过程检查 URL构造并分离各个部分。 返回的信息可用于WEB OPEN命令,以打开URL指定的主机之间的客户端连接。
URL任何逃逸序列的有效性都会受到检查。 转义序列由后跟两个十六进制字符的百分号字符 (%) 组成。 有效的十六进制字符是数字 0 到 9 以及字母 A 到 F。
请注意,如果以正确的方式URL 限定 URL字符串输入,则该命令不会检测到不正确的字符串,例如,主机名不代表互联网上现有的主机,或者 URL不允许出现的字符。
选项
- HOST(数据区)
- 返回 URL 的主机部分。 此值可以是字符主机名或数字 IP 地址。 如果端口号URL明确指定,则端口号将作为PORTNUMBER选项单独返回。
IPv4 或 IPv6 地址可以表示主机名。 IPv6 地址作为本机 IPv6 冒号十六进制地址返回,例如,::a:b:c:d。如果您URL指定了 IPv6 ,例如 http://[::a:b:c:d]:80 ,则HOST将返回不带括号的地址。
指定 IPv6 地址时,请使用字符 X'BA' 和 X'BB' (代码页 37) 来表示方括号。
有关 IP 地址的信息,请参阅 IP 地址。
- HOSTLENGTH(数据区)
- 指定 HOST 选项上提供的缓冲区的长度 (作为全字二进制变量) ,并设置为返回到应用程序的数据的长度 (主机名)。 建议将 116 个字符作为为此数据区指定的相应大小。 如果数据超过缓冲区长度,那么将生成 LENGERR 条件并截断数据。
- HOSTTYPE(cvda)
- 返回 HOST 选项的地址格式。 CVDA 值如下:
- 主机名
- HOST 选项包含字符主机名。 将在域名服务器中查找与主机名对应的 IP 地址。
- IPV4
- 该地址是点分十进制 IPv4 地址。
- IPV6
- 该地址是冒号十六进制 IPv6 地址。
- PATH(数据区)
- 返回 URL 的路径部分。
- PATHLENGTH(数据区)
- 指定PATH选项中提供的缓冲区长度,作为全字节二进制变量,并设置为返回到应用程序的数据的实际长度 URL 的路径部分)。 建议将 256 个字符作为为此数据区指定的相应大小。 如果数据超过缓冲区长度,那么将生成 LENGERR 条件并截断数据。
- PORTNUMBER(数据区)
- 以全字节二进制数据区形式返回, URL指定的或适合的端口号。 端口号有时URL明确指定,紧跟在主机名之后。 然而 URL通常会省略服务所使用的知名端口号码。 如果 URL没有端口号,则 URL会根据方案识别并返回端口号。 对于 HTTP,熟知端口号为 80;对于 HTTPS,熟知端口号为 443。 如果返回的端口号不是方案的默认端口号,则必须明确指定端口号才能访问 URL ,例如,如果您在 WEB OPEN 命令中使用此信息。
- QUERYSTRING(数据区)
- URL 返回查询字符串。 查询字符串是在对路径结尾进行定界的问号 (?) 之后编码的一个或多个值。 将以其转义格式返回查询字符串。
- QUERYSTRLEN(数据区)
- 指定 QUERYSTRING 选项上提供的缓冲区的长度 (作为全字二进制变量) ,并设置为返回到应用程序的数据的长度 (查询字符串)。 建议将 256 个字符作为为此数据区指定的相应大小。 如果数据超过缓冲区长度,那么将生成 LENGERR 条件并截断数据。
- SCHEMENAME(数据区)
- 返回 URL 的方案部分,作为16个字符的数据区。 CICS® 仅支持 HTTP 和 HTTPS (带SSL和不带SSL HTTP ),且只能在WEB OPEN命令中使用。
方案名称始终以大写形式返回。
- URL (数据值)
- 指定完整的 URL 字符串。
- URLLENGTH(数据值)
- 指定URL缓冲区长度,以全字节二进制值表示。
条件
- 16 INVREQ
- RESP2 值:
- 28 日
- URL。
- 65
- 转义序列错误。
- 22 LENGERR
- RESP2 值:
- 8
- 返回的查询字符串的长度大于 QUERYSTRLEN。
- 29 日
- 返回的主机名长度大于 HOSTLENGTH。
- 30
- 返回的路径长度大于 PATHLENGTH。
