编码路径再次编码
Encoded path is encoded again
我有一个要求:
* 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 请求,其中 returns 是 responseHeaders 中的编码代码。例如:GVkX1%2FKZEi%2FWQ
。
在我的第二个请求中,我必须获取此代码并将其放在路径 ex: url/GVkX1%2FKZEi%2FWQ
中。
问题是空手道将其转换为 url/GVkX1%252FKZEi%252FWQ
。我不需要它。如果我在将其放入路径之前解码 url/GVkX1%2FKZEi%2FWQ
,则空手道中的 url 是 url/GVkX1/KZEi/WQ
。当放在路径中时,解码的代码没有用空手道编码。我希望它更容易理解。
是的,为了您的方便,空手道将始终对您提供的 path
进行编码。无论如何,这就是 99% 的用户所期望的。
使用自定义函数解码并确保将未编码的 URL / 路径值传递给空手道并没有错,所以无论如何,请继续这样做!
编辑:您尝试解码的方式很可能是错误的,试试这个:
* def encoded = 'zxc1J%2BV%2FMnb'
* def decoded = java.net.URLDecoder.decode(encoded, 'UTF-8')
* print decoded
打印:
[print] zxc1J+V/Mnb
我有一个要求:
* 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 请求,其中 returns 是 responseHeaders 中的编码代码。例如:GVkX1%2FKZEi%2FWQ
。
在我的第二个请求中,我必须获取此代码并将其放在路径 ex: url/GVkX1%2FKZEi%2FWQ
中。
问题是空手道将其转换为 url/GVkX1%252FKZEi%252FWQ
。我不需要它。如果我在将其放入路径之前解码 url/GVkX1%2FKZEi%2FWQ
,则空手道中的 url 是 url/GVkX1/KZEi/WQ
。当放在路径中时,解码的代码没有用空手道编码。我希望它更容易理解。
是的,为了您的方便,空手道将始终对您提供的 path
进行编码。无论如何,这就是 99% 的用户所期望的。
使用自定义函数解码并确保将未编码的 URL / 路径值传递给空手道并没有错,所以无论如何,请继续这样做!
编辑:您尝试解码的方式很可能是错误的,试试这个:
* def encoded = 'zxc1J%2BV%2FMnb'
* def decoded = java.net.URLDecoder.decode(encoded, 'UTF-8')
* print decoded
打印:
[print] zxc1J+V/Mnb