簡體   English   中英

Spring 引導路徑參數 url 編碼問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM