定义
HTTP状态码400表示“Bad Request”,即服务器认为客户端发送的请求存在语法或格式错误,无法被正确处理。常见于:提交表单时未设置Content-Type: application/json,导致服务器无法解析JSON数据;API请求中日期参数格式为2025/04/24,但服务端要求YYYY-MM-DD格式,触发400错误。
常见原因
1.请求语法错误
例如URL格式错误、HTTP方法使用不当(如用GET发送表单数据而非POST)或协议版本不匹配。
2.参数问题
- 请求参数缺失、类型不匹配(如数字字段传入了字符串)。
- 参数值超出范围(如日期格式错误)。
3.请求头或请求体格式错误
- 缺少必要请求头(如Content-Type未指定或与数据格式不符)。
- 请求体数据格式错误(如JSON缺少引号、XML标签未闭合)。
4.身份验证或Cookie问题
例如无效的认证令牌、Cookie过期或权限不足。
5.服务器配置限制
如请求体大小超过服务器限制(如文件上传过大)或请求频率过高被拦截。
排查方法
1.检查客户端请求
- 使用工具(如Postman、浏览器开发者工具)验证请求的URL、方法、参数和头部信息是否规范。
- 确保请求体格式(如JSON/XML)符合标准,可通过在线格式校验工具检查。
2.验证参数合法性
检查必填参数是否缺失,数值类型是否匹配,避免特殊字符未转义(如&需编码为%26)。
3.查看服务器日志
服务器日志通常会记录具体错误信息(如Invalid parameter "user_id"),帮助定位问题。
4.调整服务器配置
若因请求体过大或超时导致错误,可修改服务器设置(如Nginx的client_max_body_size)。
5.联系服务提供方
若问题由第三方API或服务端配置引起,需联系管理员确认接口文档或调整权限。