python - python中的POST请求在将文本文件的内容发布到bitbucket PR时导致错误
问题描述
我在 vs 代码中尝试了这种方法,它工作正常
headers = {'content-type': 'application/json'}
with open('myfile.txt', mode="rb") as f:
file_content = f.read()
res = requests.post(link, auth=('user','pwd'), headers=headers, data=json.dumps({'text': file_content}))
但是,当我在 Jenkins 作业中的执行 shell 中添加它时,它会给出错误,因为 JSON obj 不可序列化。
我知道 JSON 需要字典,但是我想上传文本文件内容。我尝试过的解决方案:-尝试将标题更改为纯文本:不工作
- 尝试在请求中使用文件标志 - 不工作 - 尝试使用发布请求的默认标头 x-www-form-urlencoded 标头 - 不工作
你知道问题是什么,因为它只会在 Jenkins 工作中运行时造成麻烦。
我尝试阅读官方手册页,没有找到任何东西。
任何帮助表示赞赏。谢谢
[更新]:使用以下更改将模式 'rb' 更改为 'r' 解决了它并且它正在工作。没有序列化问题。奇怪的是,上述代码在 Python2 中完美运行,而在 Python3 中却导致错误。
解决方案
推荐阅读
- r - 使用分区函数在 R 中编写快速排序函数时遇到错误
- c# - 条件一致时如何停止变换位置?
- floating-point - OpenGL纹理8位浮点精度,浮点如何工作?
- javascript - 如何离线存储清除缓存无法删除的文件?
- spring - springboot 2.3.0同时连接到h2数据库
- python - 指定的父元素不再附加到 DOM
- javascript - 自动完成表单找到城市但无法访问它
- javascript - 如何使用钩子在 React 组件之间传输状态?
- javascript - 表格动态添加单选按钮等新元素如何添加更改事件
- excel - 如何将一个文件夹中多个excel工作簿上除工作表1和2之外的所有工作表复制到另一个工作簿中