[英]Translating a curl to python requests
我正在尝试创建一个 python 脚本来与一个名为 Xibo 的系统的 API 交互。 我的问题是我不太了解 python 并且该系统的文档可以被慷慨地描述为差。 他们的部分文档使用请求的格式,但他们的官方 API 手册建议使用以下 curl 命令来更新系统上的媒体文件。 我知道请求是与 curl 之上的 API 交互的最佳格式,所以很明显,如果一般的想法是它更好,我宁愿在请求中这样做。
curl -X POST "http://129.12.19.62/api/library" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "files=@47.htz" -F "name=47" -F "oldMediaId=47" -F "updateInLayouts=1" -F "deleteOldRevisions=1"
那就是命令。 任何人都可以通过帮助我将其翻译成请求的格式来帮助我吗? 我曾尝试使用curl.trillworks ,但由于某种原因,它说"Error parsing curl command."
. 我理解如果这是不可能的,或者如果您需要更多信息,我会尽我所能提供任何人需要帮助我的东西。
谢谢你。
尝试这样的事情:
import requests
entry_point = 'http://129.12.19.62/api/library'
headers = {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data'
}
data = {
'files': '@47.htz',
'name': '47',
'oldMediaId': '47',
'updateInLayouts': '1',
'deleteOldRevisions': '1'
}
r = requests.post(entry_point, headers=headers, data=data)
如果您再次尝试将 curl 命令粘贴到curlconverter.com中,它现在会生成正确的请求代码:
import requests
headers = {
'accept': 'application/json',
# requests won't add a boundary if this header is set when you pass files=
# 'Content-Type': 'multipart/form-data',
}
files = {
'files': open('47.htz', 'rb'),
'name': (None, '47'),
'oldMediaId': (None, '47'),
'updateInLayouts': (None, '1'),
'deleteOldRevisions': (None, '1'),
}
response = requests.post('http://129.12.19.62/api/library', headers=headers, files=files)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.