Spring Boot GET接口返回HTTP 400 Bad Request问题排查求助
排查Spring Boot GET接口返回400 Bad Request的常见方向
检查Controller方法的参数绑定
确认GET接口的方法参数是否存在必填但未传递的@RequestParam,或者参数类型不匹配的情况。比如方法定义为:@GetMapping("/api/message") public String getMessage(@RequestParam Integer userId) { return "Hello"; }如果Postman请求时未携带
userId参数,或者传递的是字符串而非数字,Spring会因参数绑定失败返回400。另外,禁止在GET方法上使用@RequestBody,GET请求无请求体,加这个注解会直接触发解析失败。核对请求头与请求体配置
GET请求通常不需要请求体,但如果Postman中错误设置了Content-Type(比如application/json)且附带了空或不合法的请求体,Spring会尝试解析无效内容导致400。建议清空Postman的请求体区域,确保Content-Type设置为text/plain或直接留空。开启详细日志定位具体错误
在application.properties中添加日志配置:logging.level.org.springframework.web=DEBUG重启服务后重新发送请求,查看IntelliJ的控制台日志,Spring会打印出400错误的具体原因,比如参数转换失败、缺少必填参数、请求体解析错误等,这是最直接的排查方式。
检查Postman的请求细节
- 确认请求方式确实是GET,未误选为POST/PUT等其他方法;
- 检查查询参数的拼写是否与Controller中的
@RequestParam名称完全一致(大小写敏感); - 如果参数值包含特殊字符(如
&、空格),需确保已进行URL编码,避免解析时出现格式错误。
验证Spring Boot的请求映射规则
确认Controller类上标注的是@RestController而非普通@Controller,前者会直接返回响应体,后者默认尝试解析视图名称,若视图不存在可能引发隐性的400错误(虽更常见404,但需排除该场景)。
内容的提问来源于stack exchange,提问作者nenito
相关产品推荐
相关产品推荐

