如何在 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)
我使用这个 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)