我对测试API的负面情况之一有疑问。 我有一个带有一个RestController的spring boot应用程序,该应用程序带有一个RequestParam(“ id”),我返回相同的id以及HttpStatus.OK。
当我按下GET API时,例如:http://localhost:8080/Temp/getInteger?id=%23abcd 分配给id的值是43981,我不知道该如何分配。
理想情况下,我不希望将此字符串转换为整数,有人可以帮助我吗?
代码:
@RestController
@RequestMapping("/Temp")
public class TempController{
@RequestMapping(method=RequestMethod.GET, path= "/getInteger")
public ResponseEntity<Object> getInteger(@RequestParam("id") Integer id){
return new ResponseEntity(id,HttpStatus.OK);
}
}
请求:
http://localhost:8080/Temp/getInteger?id=%23abcd
输出:
Http Status : 200 OK
Response Body : 43981
答案 0 :(得分:0)
来自UTF-8 URL编码字符:%23是#和 从十六进制系统: abcd是43981
因此可以将其强制转换为INT。您可以添加字母“ e”并获得一个新的数字703710。如果要避免这种情况,则需要添加验证。