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


在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=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请求

python用httplib发送get请求

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=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()

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

python用httplib发送post请求

python用httplib发送post请求


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM