pycharm本地调试,在postman中输入带下划线的参数没有问题,但是,当把项目部署到ecs中测试,使用带下划线的参数就会报错
typeerror int() argument must be a string a bytes-like object or a number
原因在于,ecs里使用的nginx做代理
在 HEADER字段名中使用下划线其实是合法的、符合 HTTP 标准的。服务器之所以要默认禁止使用是因为 CGI 历史遗留问题。下划线和中划线都为会被映射为 CGI 系统变量名中的下划线,这样容易引起混淆。
在 nginx 服务器中,通过显式地设置
underscores_in_headers on
可以开启在字段名中使用下划线。默认该选项是关闭的,所以在默认情况下,所有包含下划线的字段名都会被丢弃。
建议不要在 HEADER 中的参数使用下划线,参数名可采用驼峰方法