如何用Locust编写正确POST请求?遇400错误求助
Locust POST请求400错误解决方法
你的问题出在两个核心点:
- 后端期望接收**表单格式(application/x-www-form-urlencoded)**的请求体,但你用了
json=参数,这会让请求以JSON格式发送,Content-Type也会被自动设为application/json,和后端要求不匹配,直接导致400错误。 - 代码里把
_csrf拼写成了_crf,不管是请求头还是请求体里的参数都存在拼写错误。
正确的写法应该改用data=参数传递表单数据,同时修正拼写错误:
self.client.post( "/user/auth/login", headers={"_csrf": tok}, data={ "_csrf": tok, "Login[username]": "username", "Login[password]": "password", "Login[rememberMe]": "0" } )
如果后端明确要求Login[rememberMe]是数字类型,也可以把值改成0(去掉引号),不过表单提交时字符串"0"通常也能被后端正确解析。
另外,建议用浏览器开发者工具(F12)抓取正常登录的请求,对比请求头、请求体的格式和参数,确保Locust发送的请求和真实请求完全一致,这能帮你快速排查这类格式不匹配问题。
内容的提问来源于stack exchange,提问作者محمد حسین رحیمی
相关产品推荐
相关产品推荐

