Python 技术篇-requests发送post请求传文件给flask服务端报405、400问题解决方法

2021-12-01 10:45:30 浏览数 (1)

这是我 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)

这是我正常请求成功并接收到相应的页面。

喜欢的点个赞❤吧!

0 人点赞