这是我 flask 服务端的一块代码,可以看到有个 methods=['GET', 'POST']
,如果没有这个参数,发送请求就会报 405,因为默认能只接收到 get 请求,接收不到 post 请求。
下面链接是我用 requests 发送 post 传文件请求 flask 服务完整实现过程,有兴趣的可以看一下:
Python 技术篇-用 flask 库实现 mac 本地文件上传至 windows 服务器指定文件夹下实例演示
代码语言:javascript复制# 文件传输
@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 。
代码语言:javascript复制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)
这是我正常请求成功并接收到相应的页面。
喜欢的点个赞❤吧!