使用JMeter上传附件时出现400 Bad Request错误,求排查建议
上传PDF时出现400 Bad Request的可能原因
以下是针对该问题的排查方向:
请求边界符不匹配:检查请求头
Content-Type中的boundary值,是否和请求体里的分隔符完全一致。比如截图里请求头的boundary=----WebKitFormBoundary...,要确保请求体里的------WebKitFormBoundary...前缀完全对应,不一致会导致服务端无法解析多部分表单数据。文件路径或有效性问题:
- 虽然将PDF放在bin目录,但JMeter的相对路径基于启动目录,可尝试使用文件绝对路径测试,确认是否是路径识别问题。
- 检查PDF文件是否损坏、能否正常打开;同时确认文件名是否包含空格、特殊字符,这类情况可能导致服务端解析失败。
请求参数或字段缺失/错误:
- 对比录制的原始请求,确认是否遗漏了必填参数(比如截图请求体里的其他表单字段),参数值是否和实际提交时一致。
- 检查上传字段的
name属性,确保JMeter配置的参数名称和实际表单的文件字段名完全匹配(比如请求体里Content-Disposition中的name值)。
请求头异常:
- 确认
Authorization、X-CSRF-TOKEN这类头的有效性,比如CSRF令牌通常是动态生成的,录制的静态值可能已过期,需要通过前置处理器(如正则表达式提取器、JSON提取器)从页面或接口响应中获取最新值。 - 检查
Content-Length是否正确,若JMeter自动计算仍有问题,可尝试手动设置正确的长度值。
- 确认
文件权限问题:确保JMeter进程有读取该PDF文件的权限,避免因权限不足导致文件无法被读取上传。
内容的提问来源于stack exchange,提问作者Jumana Haimour
相关产品推荐
相关产品推荐

