我必须提出要求:
* 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
。当放入路径时,解码的代码不以空手道编码。我希望这更容易理解。
答案 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