【发布时间】:2017-03-13 22:17:51
【问题描述】:
我使用 Spring boot 创建了一个 GET/POST API,它有一个 http url 参数,比如 refid。现在这个参数在调用 GET/POST 请求之前已经被编码了 例如http://localhost:8080/users/TESTFNkJXiQAH%2FJBKxigBx
但是,当我通过 Spring Boot 部署它时,编码的 refid 会再次编码并且 refid 会发生变化。即它变成:
http://localhost:8080/users/TESTFNkJXiQAH%252FJBKxigBx
我想通过 Spring Boot 抑制这种第二编码。有人可以在这里建议吗?
【问题讨论】:
-
这个网址是怎么产生的?
-
refid 是少数参数的加密形式,然后对其进行编码,然后我们将其附加到 URL 并使用它调用 GET 或 POST。
-
为什么不在这个参数上使用 URL.decode?span>
-
所以我在调用 find 之前对其进行了解码:
refId = URLDecoder.decode(RefId, "UTF-8"); List<TestObject> objList = TestObjectDao.findByrefId( refId);网址仍然是双重编码的,即与之前的情况相同。 -
我将发布我的代码作为答案,因为 cmets 无法正确格式化代码。
标签: java spring spring-mvc encoding spring-boot