如何用CURL发送field=value格式POST请求?Flask接口返回405错误
解决Flask POST请求返回405 Method Not Allowed的问题
问题原因
你的Flask路由@app.route('/test')默认仅允许GET请求,发送POST请求时服务器会返回405状态码,提示该URL不支持当前请求方法。
修复步骤
1. 修改Flask路由,开启POST方法支持
在路由装饰器中添加methods参数,明确指定允许POST请求:
@app.route('/test', methods=['POST']) def test(): msg = request.form['msg'] return msg
如果需要同时支持GET和POST请求,可调整为:
@app.route('/test', methods=['GET', 'POST']) def test(): msg = request.form['msg'] return msg
2. 修正curl命令的参数格式
你的curl命令中'msg = test'包含空格,会导致请求的键变为msg (带空格),后端无法通过request.form['msg']获取值。需要去掉空格:
- 使用
-d发送普通表单数据:
curl -X POST -d 'msg=test' 127.0.0.1:5000/test
- 使用
-F发送multipart类型表单数据:
curl -X POST -F 'msg=test' 127.0.0.1:5000/test
内容的提问来源于stack exchange,提问作者xy01
相关产品推荐
相关产品推荐

