HTTP 请求中 Token 参数带引号导致后台无法识别问题
HTTP 请求中 Token 参数带引号导致后台无法识别问题
在使用 HttpClient 对 check_login 接口进行测试时,意外地在请求头的 token 部分添加了引号 ”s4PrKYfu”,导致后台无法正确识别该参数。错误的请求如下所示:
POST {{server_host}}/user/check_login
token:"s4PrKYfu"
Content-Type: application/json
{
"token": "s4PrKYfu"
}
后台日志记录了接受到的 token 为 " "s4PrKYfu" ",但实际需要的是"s4PrKYfu"。由于传入的 token 包含额外的引号,导致后台在拼接查询键时出现错误,最终无法正确查询到登录信息。相关日志如下:
2024-06-08 10:34:35.780 INFO 8488 --- [nio-8085-exec-1] c.y.p.interceptor.LoginInterceptor : 接受到的token="s4PrKYfu"
2024-06-08 10:34:35.945 INFO 8488 --- [nio-8085-exec-1] c.y.p.service.impl.UserServiceImpl : 从redis获取键为=USER_"s4PrKYfu"的token
2024-06-08 10:34:36.392 INFO 8488 --- [nio-8085-exec-1] c.y.p.service.impl.UserServiceImpl : 从redis中获取到的登录信息=null
要解决这个问题,需要修正前端发送的请求,确保 token 参数不包含额外的引号。这样后台才能正确地解析请求并查询到相应的登录信息。
POST {{server_host}}/user/check_login
token:s4PrKYfu
Content-Type: application/json
ps:另外,记住在编写请求时,请求和请求头部分不能有换行,以确保后续的请求头和负载能够正确携带。
例如以下写法token是无法携带到后台接口的...
POST {{server_host}}/user/check_login
// 手贱换行了...
token:"s4PrKYfu"
Content-Type: application/json
{
"token": "s4PrKYfu"
}