我想在其中一种测试环境中使用karate.configure('lowerCaseResponseHeaders', true)
。但是问题在于,它将状态的值以小写形式放置在redirect_uri中,该值在POST请求的responseHeaders.location
中返回。示例:
位置的返回值:
location: https://www.example.com/bar?state=ReturnedValueForState
使用karate.configure('lowerCaseResponseHeaders', true)
location: https://www.example.com/bar?state=returnedvalueforstate
我必须使用原始的返回值,否则当我使用redirect_uri时会得到404 Not Found。 空手道中是否有解决方案,可以跳过responseHeaders中项目的值,而仅将项目名称小写?
答案 0 :(得分:1)
不。因此,请手动进行。在进行验证之前,请使用karate.lowerCase()
。
答案 1 :(得分:0)
我找到了解决此问题的方法,但不适用于其他responseHeader。这是我的解决方案:在karate-config.js中,我放了
location: 'location'
作为环境变量,用于返回小写位置的
location: 'Location'
用于返回大写位置的环境。然后在功能中,我可以获得位置的值:`
* def location = responseHeaders[location][0]`
* def foo = location.substring(location.lastIndexOf('/') + 2)
它不适用于诸如PSU-User-Agent
之类的标头。响应为Could not parse token starting at position 1. Expected ?, ', 0-9, *
我在这里阅读了有关此问题的信息,但未发现任何问题:https://github.com/intuit/karate/issues/504。
我们使用最新的空手道版本:0.9.4。
为什么在空手道回应中标题检查保持区分大小写?而在http协议中,它应不区分大小写。 感谢您的答复