[英]Spring boot path param url encoding issue
我有一個 spring 啟動應用程序,在我的 controller 之一中,我有一個來自路徑參數的字符串。 我有我的 controller,如下所示:
Controller.java
@GetMapping(value=“/id/{txt}/user”)
public ResponseEntity<MyUser> getUser(@PathVariable String txt) {
}
在我的請求中,我會將 txt 值作為帶有一些 url 編碼字符的字符串。 以下是請求的示例:
/id/Siney6jginshbnsu%252Fghshs%253D
但是當我調試應用程序時,路徑變量 txt 是:
/id/Siney6jginshbnsu%2Fghshs%3D
問題是我正在對 txt using.equals 進行字符串比較,並且由於上述編碼/解碼問題,我看到了這個問題。
有什么方法可以完全按原樣從請求中獲取 url 編碼字符串?
我知道我可以嘗試對添加 %25 的 txt 進行編碼,但問題是我可能在字符串中有 % 會將其編碼為 %25。 因此,如果有人可以提供幫助或建議解決此問題的方法,我們將不勝感激。
提前致謝。
你可以試試這個代碼:
@GetMapping(value=“/id/{txt}/user”)
public ResponseEntity<MyUser> getUser(@PathVariable("txt") String txt) {
}
@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”,此時您可以創建自己的 function 來提取 txt。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.