这是我 flask 服务端的一块代码,可以看到有个 methods=['GET', 'POST']
,如果没有这个参数,发送请求就会报 405,因为默认能只接收到 get 请求,接收不到 post 请求。
下面链接是我用 requests 发送 post 传文件请求 flask 服务完整实现过程,有兴趣的可以看一下:
Python 技术篇-用 flask 库实现 mac 本地文件上传至 windows 服务器指定文件夹下实例演示
# 文件传输 @app.route('/sendfile', methods=['GET', 'POST']) def down_file(): if flask.request.method == 'POST': file = flask.request.files['file'] # 获取上传的文件 if(file): # 如果文件存在 path_aim = flask.request.values.get('path'); if(path_aim[-1] != "\\"): path_aim = path_aim + "\\" file.save(path_aim + file.filename) # 保存文件 return "文件接收成功!";
报 400 的原因很大情况下是 requests 参数传的有问题。
给大家看一下我测试正常的代码,之前 files 的格式有问题,导致的我发送请求报了 400 。
import requests url = "http://10.11.xx.xx:5003/sendfile" data = {'path':'D:\\工具'} files = {'file':open(r'/Users/lizhi/Desktop/lizhi/XpathRobot_Crx.zip', 'rb')} req = requests.request("POST", url = url, files = files, data = data) print(req.text)
这是我正常请求成功并接收到相应的页面。
喜欢的点个赞❤吧!