gpt4 book ai didi

python - 当 PUT 到 Webdav 服务器时, header 信息被写入文件

转载 作者:行者123 更新时间:2023-12-01 02:24:24 25 4
gpt4 key购买 nike

我有以下代码:

    r = requests.put(
config.get('webdav', 'url') + file_name,
auth=(
config.get('webdav', 'username'),
config.get('webdav', 'password')
),
files={
"files": open(os.path.expanduser(charges_file_path), 'rb')
}
)

这相当简单。它只是向 webdav 服务器调用 PUT 请求,并将文件中的数据(纯文本)推送到服务器。

它有效,除了一个奇怪的(或者如果我只是错过了一些小东西,也许并不那么奇怪)问题。当我对文件执行 GET 或直接在服务器上查看文件时,文件本身包含 header 信息:

--55e72d74a10b423590cd4faa68212192Content-Disposition: form-data; name="files"; filename="test_file6.txt"

(file_data)

--55e72d74a10b423590cd4faa68212192--

我还没有找到解决这个问题的原因或方法。当我从命令行 cURL 文件时,它工作正常。

有什么想法吗?

最佳答案

我不太熟悉 Python requests 的工作原理,但在阅读了一些文档并发现有人在向 Zendesk 发送文件时遇到类似问题 (this post) 后,您可能想尝试一下在请求中使用 data(或 json)参数而不是 files。另外,如果这里适用的话,可能会附加一个带有文件名的 params ,并且与我链接的帖子类似。

另一件事是在此请求上放置一个 Content-Type header 。

requests.put(
...,
headers={'Content-Type': 'application/binary'},
data=open(os.path.expanduser(charges_file_path), 'rb').read()
)

关于python - 当 PUT 到 Webdav 服务器时, header 信息被写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47541676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com