我尝试使用HTTPSConnection在python中翻译curl命令。
origin curl命令是:
curl -X DELETE \
-H "X-LC-Id: "id" \
-H "X-LC-Key: "key" \
-G \
--data-urlencode 'limit=10' \
https://xxx/1.1/logs
以下是一个有效的解决方案:
connection = httplib.HTTPSConnection("https://xxx")
connection.connect()
connection.request(
"GET",
"/1.1/logs?limit=" + 10,
json.dumps({}),
{
"X-LC-Id" : "id",
"X-LC-Key" : "key",
}
)
results = json.loads(connection.getresponse().read())
return results
这样可以正常返回10个结果。
但是,以下内容不起作用:
connection = httplib.HTTPSConnection("https://xxx")
connection.connect()
connection.request(
"GET",
"/1.1/logs",
json.dumps({"limit": "10"}),
{
"X-LC-Id" : "id",
"X-LC-Key" : "key",
}
)
results = json.loads(connection.getresponse().read())
return results
此解决方案返回来自服务器的所有消息,而不是10。
在HTTPSConnection中使用时,我应该将这些参数放在curl -g字段中,而不必像以下那样生成请求字符串:
"/1.1/logs?limit=" + 10 + "&aaa=" + aaa + "&bbb=" + bbb + ...
感谢任何建议,谢谢:)
答案 0 :(得分:0)
request
的第三个参数是查询正文,不应该为GET请求发送。 (似乎服务不是读取正文,这就是不遵守限制的原因。)您需要附加查询字符串,但您可能需要查看generating it from a Python dict而不是手动滚动它。 / p>