编码路径再次编码

时间:2017-11-29 11:11:56

标签: karate

我必须提出要求:

* url foo
* path bar
* path code

从另一个请求中检索代码,我收到了url编码。 问题是,当我把它放在路径中时,空手道再次编码。

例如:我收到zxc1J%2BV%2FMnb,路径变为zxc1J%252BV%252FMnb%2B替换为%252B

当我解码收到的代码并将其放入路径时,它不会被编码。

我要解码的javascript函数是: * def codeDecoded = decodeURIComponent(code)

和编码功能是* def codeEncoded = encodeURIComponent(codeDecoded)

我错过了什么?怎么了?我该怎么办呢?感谢。

编辑:

@Peter Thomas我尝试了最后一次机会,因为我已经向服务器上的某个人展示了prb,他不明白为什么空手道再次编码已编码的smth并且不编码解码的smth。

所以我的第一个请求是POST请求,它在responseHeaders中返回一个编码代码。例如:GVkX1%2FKZEi%2FWQ

在我的第二个请求中,我必须使用此代码并将其放在路径ex:url/GVkX1%2FKZEi%2FWQ中。 问题是空手道将其转换为url/GVkX1%252FKZEi%252FWQ。我不需要它。如果我在将url/GVkX1%2FKZEi%2FWQ解码之前将其放入路径中,则空手道中的网址为url/GVkX1/KZEi/WQ。当放入路径时,解码的代码不以空手道编码。我希望这更容易理解。

1 个答案:

答案 0 :(得分:0)

是的,为了您的方便,空手道将始终对您提供的path进行编码。这是99%的用户所期望的。

使用自定义函数进行解码并确保将未编码的URL /路径值传递给空手道没有任何问题,所以请务必继续这样做!

编辑:你尝试解码的方式很可能是错误的,试试这个:

* def encoded = 'zxc1J%2BV%2FMnb'
* def decoded = java.net.URLDecoder.decode(encoded, 'UTF-8')
* print decoded

打印哪些:

[print] zxc1J+V/Mnb