前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 技术篇-requests发送post请求传文件给flask服务端报405、400问题解决方法

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

作者头像
小蓝枣
发布2021-12-01 10:45:30
1.4K0
发布2021-12-01 10:45:30
举报
文章被收录于专栏:CSDN博客专家-小蓝枣的博客

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

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

喜欢的点个赞❤吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档