我想从响应头etag中获得一个特定的值。
响应头:
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可以使用regex:
* def extracted = karate.extract(etag, '-([^\"]+)"', 1)
* match extracted == 'pbdwwFo9SKNhD3Lx5iHJyngpq00'