使用Python请求POST到cgi脚本

时间:2014-10-15 16:59:46

标签: python python-requests httplib

我目前正在使用python库httplib将POST请求传递给cgi脚本。

# Make web call to CGI script
user_agent = r'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent' : user_agent,
            "Content-type": "application/x-www-form-urlencoded",
            "Accept": "text/plain"}
conn = httplib.HTTPConnection(self.host)
conn.request("POST", "/path/cgi_script.py", params, headers)
response = conn.getresponse()
if debug: print response.status, response.reason

但是,httplib库很旧,我想使用更新的请求。如何重构我的代码以使用请求?我一直在网上寻找一个例子,但我找不到任何一个。

1 个答案:

答案 0 :(得分:1)

您可以在此处使用requests,将参数作为字典提供,并将编码工作留给库:

params = {'foo': 'bar', 'spam': 'eggs'}

user_agent = r'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent' : user_agent, "Accept": "text/plain"}
response = requests.post(
    'http://{}/path/cgi_script.py'.format(self.host),
    headers=headers, data=params)
if debug: print response.status_code, response.reason