python HTTPSConnection curl -g参数

时间:2016-11-08 03:40:47

标签: python curl

我尝试使用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 + ...

感谢任何建议,谢谢:)

1 个答案:

答案 0 :(得分:0)

request的第三个参数是查询正文,不应该为GET请求发送。 (似乎服务不是读取正文,这就是不遵守限制的原因。)您需要附加查询字符串,但您可能需要查看generating it from a Python dict而不是手动滚动它。 / p>