我目前正在編寫一個帶有 REST API 服務器的 Java Spring Boot 應用程序。我在這里刪除了很多不相關的代碼,但我的 POST 路由之一如下所示:@RequestMapping(value = "/post-request", method = RequestMethod.POST)public String postRequest( @RequestParam(name = REQUEST_STRING) String requestString, ){ logger.info(requestString)}這種方法對于大多數字符串都很有效,但是當在請求參數中包含特殊字符時,我遇到了一個非常奇怪的錯誤。例如,如果我向應用程序發送包含以下內容的請求:這個 (&) 是一個 & 符號在 Postman 中,應用程序將記錄這 (并剪掉特殊字符之后的所有內容。我相當確定這與 REST API 中特殊字符的編碼方式有關,尤其是在請求參數方面,但我在這里做錯了什么?有沒有辦法讓我使用 Java Spring Boot 獲取完整的字符串,或者我是否被限制這樣做?
1 回答

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
RequestParam 與“&”有區別,因此如果您直接在字符串中傳遞“&”,& 之后的任何內容都將被視為另一個RequestParam例如:http://testdata.com?username=test&password=hello&123&type=user這里密碼將作為 hello 傳遞,123 將被視為另一個 RequestParam為了克服這個問題,您需要將“&”編碼為“%26”http://testdata.com?username=test&password=hello%26123&type=user
添加回答
舉報
0/150
提交
取消