【问题标题】:How to send a file with unicode name using Requests如何使用请求发送具有 unicode 名称的文件
【发布时间】:2015-04-11 03:08:29
【问题描述】:

我正在尝试使用Requests 库在 Mac (OS X 10.10) 上使用 Python 3.4 对 Slack 进行 POST 调用,如下所示:

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 中做错了什么?

【问题讨论】:

  • 您使用的是什么 Python 版本以及什么操作系统?在我看来,这与请求或松弛无关,但与您的操作系统能够处理 unicode 文件名有关。
  • @jedwards 哎呀,谢谢。我更新了问题。
  • 感谢您更新该信息。不幸的是,OS X 不是我可以尝试提供帮助的平台,但 thisthis 可能会有所帮助。

标签: python rest python-3.x unicode slack-api


【解决方案1】:

这原来是 Slack 的 Web API 实现的一个问题,它不支持 RFC 5987bis。 Requests 团队的一些乐于助人的成员在GitHub issue thread 上帮助我得出了这个结论。

一旦错误修复,我将更新此答案。

【讨论】:

  • 错误修复有什么进展吗?
  • @eamirgh 抱歉,我没有收到他们的回复。
猜你喜欢
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 2012-03-13
  • 2015-12-26
  • 1970-01-01
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多