python用httplib模块发送get和post请求

时间:2021-06-14 19:16:41

转自:http://www.01happy.com/python-httplib-get-and-post/

在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。

1、python发送GET请求

我在本地建立一个测试环境,test.php的内容就是输出一句话:

1 echo'Old friends and old wines are best.';

python发送get请求代码:

123456789101112131415161718192021 #!/usr/bin/env python#coding=utf8 importhttplib httpClient =None try:    httpClient =httplib.HTTPConnection('localhost'80, timeout=30)    httpClient.request('GET''/test.php')     #response是HTTPResponse对象    response =httpClient.getresponse()    printresponse.status    printresponse.reason    printresponse.read()exceptException, e:    printefinally:    ifhttpClient:        httpClient.close()

上面代码中使用了finally来保证即使出错的时候也能关闭httpClient。运行这个程序,在我的电脑上输出结果如下:

python用httplib模块发送get和post请求

python用httplib发送get请求

2、python发送POST请求

修改test.php内容,打印出$_POST数组:

1 var_dump($_POST);

python发起post请求代码:

123456789101112131415161718192021222324 #!/usr/bin/env python#coding=utf8 importhttplib, urllib httpClient =Nonetry:    params =urllib.urlencode({'name''tom''age'22})    headers ={"Content-type""application/x-www-form-urlencoded"                    "Accept""text/plain"}     httpClient =httplib.HTTPConnection("localhost"80, timeout=30)    httpClient.request("POST""/test.php", params, headers)     response =httpClient.getresponse()    printresponse.status    printresponse.reason    printresponse.read()    printresponse.getheaders() #获取头信息exceptException, e:    printefinally:    ifhttpClient:        httpClient.close()

运行代码,在我的电脑上输出如下:

python用httplib模块发送get和post请求

python用httplib发送post请求