如何从空手道中的响应 header 中提取双引号中的值
How to extract value in double quotes from a response header in karate
我想要响应 header etag 中的特定值。
回应header:
etag: W/"118-pbdwwFo9SKNhD3Lx5iHJyngpq00"
空手道代码:
* def etag = responseHeaders['etag'][0]
* print 'Value of Etag is', etag
* def etagValue = etag.substring(etag.lastIndexOf('-') + 1)
* print 'Value of Etag is', etagValue
它给了我预期的完整 etag 的值。现在我只想获取如下特定值。
etag 变量有值
W/"118-pbdwwFo9SKNhD3Lx5iHJyngpq00"
etagValue 变量在这里有值如何从结尾删除双引号
pbdwwFo9SKNhD3Lx5iHJyngpq00"
期望值,其中 - 是左边界," 是我需要的值的右边界。
pbdwwFo9SKNhD3Lx5iHJyngpq00
使用indexOf()
两次。给你:
* def etag = 'W/"118-pbdwwFo9SKNhD3Lx5iHJyngpq00"'
* def temp1 = etag.substring(etag.indexOf('-') + 1)
* def temp2 = temp1.substring(0, temp1.indexOf('"'))
* match temp2 == 'pbdwwFo9SKNhD3Lx5iHJyngpq00'
为了完整起见,还有一个可以使用正则表达式的karate.extract()
API:
* def extracted = karate.extract(etag, '-([^\"]+)"', 1)
* match extracted == 'pbdwwFo9SKNhD3Lx5iHJyngpq00'
我想要响应 header etag 中的特定值。
回应header:
etag: W/"118-pbdwwFo9SKNhD3Lx5iHJyngpq00"
空手道代码:
* def etag = responseHeaders['etag'][0]
* print 'Value of Etag is', etag
* def etagValue = etag.substring(etag.lastIndexOf('-') + 1)
* print 'Value of Etag is', etagValue
它给了我预期的完整 etag 的值。现在我只想获取如下特定值。
etag 变量有值
W/"118-pbdwwFo9SKNhD3Lx5iHJyngpq00"
etagValue 变量在这里有值如何从结尾删除双引号
pbdwwFo9SKNhD3Lx5iHJyngpq00"
期望值,其中 - 是左边界," 是我需要的值的右边界。
pbdwwFo9SKNhD3Lx5iHJyngpq00
使用indexOf()
两次。给你:
* def etag = 'W/"118-pbdwwFo9SKNhD3Lx5iHJyngpq00"'
* def temp1 = etag.substring(etag.indexOf('-') + 1)
* def temp2 = temp1.substring(0, temp1.indexOf('"'))
* match temp2 == 'pbdwwFo9SKNhD3Lx5iHJyngpq00'
为了完整起见,还有一个可以使用正则表达式的karate.extract()
API:
* def extracted = karate.extract(etag, '-([^\"]+)"', 1)
* match extracted == 'pbdwwFo9SKNhD3Lx5iHJyngpq00'