如何从空手道响应头中提取双引号中的值

  • 本文关键字:提取 空手道 响应 karate
  • 更新时间 :
  • 英文 :


我想从响应头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'

最新更新