如何将 curl 命令转换为 python 等价物?
How to turn curl command into python equivalent?
我正在尝试实现一个 python 脚本,该脚本将在创建自签名证书后使用 setWebhook
method of telegram bot api. As it is explained here 设置一个 webhook,我们可以使用此 curl 命令实现此目的:
curl -F "url=https://<YOURDOMAIN.EXAMPLE>/<WEBHOOKLOCATION>" \
-F "certificate=@<YOURCERTIFICATE>.pem" https://api.telegram.org/bot<YOURTOKEN>/setWebhook
调用 这个 curl 命令 设置 webhook 没有任何问题 我通过它获得更新。
但现在我正在尝试使用 python 脚本实现此目的,因此我可以使用一些命令行参数调用它,以便它为我设置 webhook,获取有关它的信息或将其删除。到目前为止我写的是这样的:
files = {
'file': ('certificate', open(configuration.CERTFILE, 'rb'))
}
headers = {'Content-Type': 'multipart/form-data'}
data = {
'url': configuration.WEBHOOK_URL,
}
url = configuration.API % 'setWebhook'
rp = requests.post(url, headers=headers, data=data, files=files)
print('result of setWebhook: ', rp.status_code)
响应的状态码是400 Bad Request
。我认为我以错误的方式发送请求。
关于我对电报机器人 api 的 requests
请求 有什么问题 有任何想法吗?
带两个文件参数-F
的精确curl查询可以转换成python-requests
变成
import requests
files = {
'url': 'https://<YOURDOMAIN.EXAMPLE>/<WEBHOOKLOCATION>',
'certificate': open('<YOURCERTIFICATE>.pem', 'rb')
}
requests.get('https://api.telegram.org/bot<YOURTOKEN>/setWebhook', files=files)
删除 headers
参数并重命名 files
参数的键就成功了。所以,现在我的代码如下所示:
files = {
'certificate': ('certificate', open(configuration.CERTFILE, 'rb'))
}
data = {
'url': configuration.WEBHOOK_URL,
}
url = configuration.API % 'setWebhook'
rp = requests.post(url, data=data, files=files)
我正在尝试实现一个 python 脚本,该脚本将在创建自签名证书后使用 setWebhook
method of telegram bot api. As it is explained here 设置一个 webhook,我们可以使用此 curl 命令实现此目的:
curl -F "url=https://<YOURDOMAIN.EXAMPLE>/<WEBHOOKLOCATION>" \
-F "certificate=@<YOURCERTIFICATE>.pem" https://api.telegram.org/bot<YOURTOKEN>/setWebhook
调用 这个 curl 命令 设置 webhook 没有任何问题 我通过它获得更新。
但现在我正在尝试使用 python 脚本实现此目的,因此我可以使用一些命令行参数调用它,以便它为我设置 webhook,获取有关它的信息或将其删除。到目前为止我写的是这样的:
files = {
'file': ('certificate', open(configuration.CERTFILE, 'rb'))
}
headers = {'Content-Type': 'multipart/form-data'}
data = {
'url': configuration.WEBHOOK_URL,
}
url = configuration.API % 'setWebhook'
rp = requests.post(url, headers=headers, data=data, files=files)
print('result of setWebhook: ', rp.status_code)
响应的状态码是400 Bad Request
。我认为我以错误的方式发送请求。
关于我对电报机器人 api 的 requests
请求 有什么问题 有任何想法吗?
带两个文件参数-F
的精确curl查询可以转换成python-requests
变成
import requests
files = {
'url': 'https://<YOURDOMAIN.EXAMPLE>/<WEBHOOKLOCATION>',
'certificate': open('<YOURCERTIFICATE>.pem', 'rb')
}
requests.get('https://api.telegram.org/bot<YOURTOKEN>/setWebhook', files=files)
删除 headers
参数并重命名 files
参数的键就成功了。所以,现在我的代码如下所示:
files = {
'certificate': ('certificate', open(configuration.CERTFILE, 'rb'))
}
data = {
'url': configuration.WEBHOOK_URL,
}
url = configuration.API % 'setWebhook'
rp = requests.post(url, data=data, files=files)