如何使用Python的httplib向URL发送包含参数字典的POST请求?
我只想要一个函数,它可以接收两个参数:
- 要发送请求的URL地址
- 一个包含参数的字典
请问怎么用httplib来实现这个功能?谢谢。
2 个回答
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()
这个内容可以在Python的官方文档中找到,关于urllib模块的例子。
40
来自Python文档的内容:
>>> 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()