如何使用Python的httplib将POST发送到URL,并带有参数字典?

时间:2010-03-03 09:27:35

标签: python api post httplib

我只想要一个可以带2个参数的函数:

  • 要发送到
  • 的网址
  • 参数字典

如何使用httplib完成此操作?感谢。

2 个答案:

答案 0 :(得分:41)

来自Python documentation

>>> import httplib, urllib
>>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
...            "Accept": "text/plain"}
>>> conn = httplib.HTTPConnection("musi-cal.mojam.com:80")
>>> conn.request("POST", "/cgi-bin/query", params, headers)
>>> response = conn.getresponse()
>>> print response.status, response.reason
200 OK
>>> data = response.read()
>>> conn.close()

答案 1 :(得分:11)

更简单的一个,只使用urllib:

import urllib
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
f = urllib.urlopen("http://www.example.org/cgi-bin/query", params)
print f.read()

urllib module

的Python文档中找到