标签:
在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。
1、python发送GET请求
我在本地建立一个测试环境,test.php的内容就是输出一句话:
|
1
|
echo ‘Old friends and old wines are best.‘; |
python发送get请求代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/env python#coding=utf8import httplibhttpClient = Nonetry: 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 efinally: if httpClient: httpClient.close() |
上面代码中使用了finally来保证即使出错的时候也能关闭httpClient。运行这个程序,在我的电脑上输出结果如下:
2、python发送POST请求
修改test.php内容,打印出$_POST数组:
|
1
|
var_dump($_POST); |
python发起post请求代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/usr/bin/env python#coding=utf8import httplib, urllibhttpClient = 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() print response.status print response.reason print response.read() print response.getheaders() #获取头信息except Exception, e: print efinally: if httpClient: httpClient.close() |
运行代码,在我的电脑上输出如下:
标签:
原文地址:http://www.cnblogs.com/hushaojun/p/4538422.html