python - Python 请求使用 POST 上传文件
问题描述
我目前正在努力解决一个非常简单的问题,但无法详细发现问题。我想通过 上传文件requests.post
,目前的方法有点像:
fin = open(f"{path_dtl}{filename}.dtl", "rb")
files = {"file": fin}
headers = CaseInsensitiveDict()
headers["Authorization"] = f"Bearer {auth_token}"
headers["Content-Type"] = "application/octet-stream"
headers["Content-Disposition"] = f"form-data;filename ='{filename}.dtl'"
upload_dtl = requests.post(url, headers=headers, files=files)
结果是{'error': 'Invalid Media Type/Mime Type'}
响应。是否需要以不同的方式打开 .dtl 文件?通过 Postman 使用此配置的请求可以正常工作,所以我想我错过了一个愚蠢的错误。提前致谢。
更新
好吧...对于任何有兴趣的人。问题的原因是我的 API 中的默认键值“文件”files = {"file": fin}
不同。以下解决方法解决了我的问题。
with open(f"{path_dtl}{filename}.dtl", "rb") as f: files = f.read()
...
upload_dtl = requests.post(url, headers=headers, files=files)
解决方案
您是否尝试过指定类型?你可以这样做:
files = {'file': ('aaa.csv', open('aaa.csv', 'rb'),'text/csv')}
推荐阅读
- java - “文件丢失!” USACO Java 程序错误
- r - 如何将参数传递给引用嵌套数据框的列名的 purrr:::map?
- python - 8带有A*的益智游戏:开放集的结构是什么?
- python - Python XPath 从 Google Project Sunroof 返回空列表
- javascript - [Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘类型’”
- java - 在 Lambda 表达式上调用方法
- security - geth 选项“--allow-insecure-unlock”,它到底是什么意思?
- javascript - 在间隔上显示和隐藏角度材料工具栏?
- sql - ORACLE SQL:相关子查询,用于按每年竞赛类别中最快最短时间的运动员获取个人详细信息
- python - 如何在 anaconda\env 中从 komodo 编辑设置和运行不同的 python3 环境版本?