Python发送GET和POST请求
在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。
1、python发送GET请求
我在本地建立一个测试环境,test.php的内容就是输出一句话:
[php] view plain copy
- echo ‘Old friends and old wines are best.’;
python发送get请求代码:
[python] view plain copy
- #!/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。
2、python发送POST请求
修改test.php内容,打印出$_POST数组:
[php] view plain copy
- var_dump($_POST);
python发起post请求代码:
[python] view plain copy
- #!/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()
还没有评论,来说两句吧...