WEB PARSE URL

将 URL 字符串细分为其组成部分。

语法

WEB PARSE URL

读取语法图跳过可视语法图WEBPARSE URL( data-value)URLLENGTH( data-value)SCHEMENAME( data-area)HOST( data-area)HOSTLENGTH( data-area)HOSTTYPE( CVDA)PORTNUMBER( data-area)PATH( data-area)PATHLENGTH( data-area)QUERYSTRING( data-area)QUERYSTRLEN( data-area)

条件: INVREQ 和 LENGERR

此命令是线程安全的。

NOHANDLERESPRESP2是常用选项,可添加到所有 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。