在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。
1、python发送GET请求
我在本地建立一个测试环境,test.php的内容就是输出一句话:
echo 'Old friends and old wines are best.';
python发送get请求代码:
#!/usr/bin/env python #coding=utf8 import httplib httpClient = None try: httpClient = httplib.HTTPConnection('localhost', 80, timeout=30) httpClient.request('GET', '/test.php') #response是HTTPResponse对象 response = httpClient.getresponse() print response.status print response.reason print response.read() except Exception, e: print e finally: if httpClient: httpClient.close()
上面代码中使用了finally来保证即使出错的时候也能关闭httpClient。运行这个程序,在我的电脑上输出结果如下:
python用httplib发送get请求
2、python发送POST请求
修改test.php内容,打印出$_POST数组:
1
var_dump(
$_POST
);
python发起post请求代码:
#!/usr/bin/env python #coding=utf8 import httplib, urllib httpClient = None try: 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() print response.status print response.reason print response.read() print response.getheaders() #获取头信息 except Exception, e: print e finally: if httpClient: httpClient.close()
运行代码,在我的电脑上输出如下: