如何强制Gatling在所有请求中携带content-type请求头?
解决Gatling强制在GET请求中携带Content-Type请求头的问题
Gatling默认遵循HTTP规范,会自动移除GET请求中被判定为“不必要”的Content-Type请求头,但针对你的遗留系统需求,可通过以下两种方式强制发送该请求头:
方法一:使用rawHeader替代header
rawHeader方法添加的请求头不会被Gatling的自动过滤逻辑处理,会直接附加到请求中:
http("foo") .get("bar") .rawHeader("Content-Type", "application/json")
方法二:禁用自动头过滤(全局/局部)
如果需要全局禁用Gatling的自动头管理,可在HTTP协议配置中添加disableAutoHeaders(),但这会移除Gatling自动添加的所有默认请求头(如Accept、User-Agent等),需自行补充必要的请求头:
val httpProtocol = http .baseUrl("https://your-target-url.com") .disableAutoHeaders() .header("Content-Type", "application/json") .header("Accept", "application/json") // 按需添加其他必要的默认请求头
若仅需针对单个请求禁用自动头过滤,可在请求级别配置:
http("foo") .get("bar") .disableAutoHeaders() .header("Content-Type", "application/json")
验证方式
你可以通过以下方式确认请求头是否已正确发送:
- 开启Gatling的DEBUG日志,查看请求的头信息
- 使用Gatling Recorder录制请求,检查生成的请求是否包含目标头
内容的提问来源于stack exchange,提问作者audreye
相关产品推荐
相关产品推荐

