如何使用 Requests 发送具有 unicode 名称的文件
How to send a file with unicode name using Requests
我正在尝试使用 Requests 库在 Mac 上使用 Python 3.4 对 Slack 进行 POST 调用(OS X 10.10),像这样:
url = 'https://slack.com/api/files.upload'
with open('File β.txt', 'rb') as file:
r = requests.post(url, files={'file': file}, params={
'token': api_token,
'channels': channel
})
但后来我收到了 Slack 的 "no_file_data" 回复。如果我使用 ASCII "B" 字符而不是 unicode beta,那么它工作正常。
我的文件是 UTF-8 编码的,我的 hashbang 下面有一行:
# -*- coding: UTF-8 -*-
这是 Slack 的问题,还是我在 Python 中做错了什么?
事实证明这是 Slack 的网络 API 实施的问题,它不支持 RFC 5987bis. I was helped along to this conclusion by some helpful members of the Requests team on a GitHub issue thread。
错误修复后我会更新此答案。
我正在尝试使用 Requests 库在 Mac 上使用 Python 3.4 对 Slack 进行 POST 调用(OS X 10.10),像这样:
url = 'https://slack.com/api/files.upload'
with open('File β.txt', 'rb') as file:
r = requests.post(url, files={'file': file}, params={
'token': api_token,
'channels': channel
})
但后来我收到了 Slack 的 "no_file_data" 回复。如果我使用 ASCII "B" 字符而不是 unicode beta,那么它工作正常。
我的文件是 UTF-8 编码的,我的 hashbang 下面有一行:
# -*- coding: UTF-8 -*-
这是 Slack 的问题,还是我在 Python 中做错了什么?
事实证明这是 Slack 的网络 API 实施的问题,它不支持 RFC 5987bis. I was helped along to this conclusion by some helpful members of the Requests team on a GitHub issue thread。
错误修复后我会更新此答案。