如何在 POST 请求(表单数据)中上传文件?

How to upload the file in POST requests (form-data)?

我使用这个 GET request https://api.telegram.org/file/bot<token>/<file_path> 允许我们从 Telegram API 下载文件。 现在我需要在第二个 POST 请求(表单数据)中发送此文件。

现在我的代码引发了这样的错误:

Exception: embedded null byte Traceback

代码片段:

# Download the file via GET request of the Telegram API.
response = requests.get("{0}/file/bot{1}/{2}".format(TELEGRAM_API_URL, telegram_bot_token, file_path))

files = [
    ('file', (file_name, open(response.content, 'rb'), 'application/octet-stream')) # error
]

# Upload the file via POST request.
response = requests.post(FILE_STORAGE_SERVICE_API_URL, files=files)

问题:

如何正确转换文件以便 POST 请求可以处理它?

我从第一个请求中获取的 response.content 的数据类型是 <class 'bytes'>

工作代码片段:

response = requests.get("{0}/file/bot{1}/{2}".format(TELEGRAM_API_URL, telegram_bot_token, file_path))

files =  {
    "file": response.content
}

requests.post(FILE_STORAGE_SERVICE_API_URL, files=files)