java - Spring引导路径参数url编码问题
问题描述
我有一个弹簧启动应用程序,在我的一个控制器中,我有一个来自路径参数的字符串。我的控制器如下所示:
控制器.java
@GetMapping(value=“/id/{txt}/user”)
public ResponseEntity<MyUser> getUser(@PathVariable String txt) {
}
在我的请求中,我会将 txt 值作为带有一些 url 编码字符的字符串。以下是请求的示例:
/id/Siney6jginshbnsu%252Fghshs%253D
但是当我调试应用程序时,路径变量 txt 是:
/id/Siney6jginshbnsu%2Fghshs%3D
问题是我正在使用 .equals 对 txt 进行字符串比较,并且由于上述编码/解码问题,我看到了这个问题。
有什么方法可以完全按原样从请求中获取 url 编码的字符串?
我知道我可以尝试对添加 %25 的 txt 进行编码,但问题是我可能在字符串中有 % 会将其编码为 %25。因此,如果有人可以提供帮助或建议解决此问题的方法,我们将不胜感激。
提前致谢。
解决方案
@GetMapping("/id/{txt}/user")
public ResponseEntity<MyUser> getUser(HttpServletRequest request, @PathVariable(name="txt") String txt) {
String urlNotEncoded = request.getRequestURI();
...
}
这样 urlNotEncoded 包含:“/id/Siney6jginshbnsu%252Fghshs%253D/user”,此时您可以创建自己的函数来提取 txt。
推荐阅读
- python - 如果整个数据集的图像可以以较小的部分切片/平铺,然后在特征提取后再次连接?
- c++ - 在值 C++ 中搜索设置/未设置位组合
- liferay - 似乎文档 Liferay 索引没有完全完成
- excel - 显示每月前 5 名销售代表的数据透视表
- javascript - 尝试加载 mapbox 时收到错误消息
- node.js - React Highmaps 从第一个到第二个或第二个到第三个图表
- c# - 从 Azure Blob 存储获取文件大小报告
- vue.js - 使用 v-runtime-template 组件在运行时编译和解释 Vue.js 模板时 buefy 的 b-autocomplete 问题?
- python - 上传到 Pypi 失败“400 Start filename for package”
- python - 在for循环pygame中绘制多个图像