现在的位置: 首页 > 综合 > 正文

Python发送GET和POST请求

2018年03月22日 ⁄ 综合 ⁄ 共 1450字 ⁄ 字号 评论关闭

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

1、python发送GET请求

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

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

python发送get请求代码:

  1. #!/usr/bin/env python  
  2. #coding=utf8  
  3.   
  4. import httplib  
  5.   
  6. httpClient = None  
  7.   
  8. try:  
  9.     httpClient = httplib.HTTPConnection('localhost'80, timeout=30)  
  10.     httpClient.request('GET''/test.php')  
  11.   
  12.     #response是HTTPResponse对象  
  13.     response = httpClient.getresponse()  
  14.     print response.status  
  15.     print response.reason  
  16.     print response.read()  
  17. except Exception, e:  
  18.     print e  
  19. finally:  
  20.     if httpClient:  
  21.         httpClient.close()  

上面代码中使用了finally来保证即使出错的时候也能关闭httpClient。

2、python发送POST请求
修改test.php内容,打印出$_POST数组:

  1. var_dump($_POST);  

python发起post请求代码:

  1. #!/usr/bin/env python  
  2. #coding=utf8  
  3.   
  4. import httplib, urllib  
  5.   
  6. httpClient = None  
  7. try:  
  8.     params = urllib.urlencode({'name''tom''age'22})  
  9.     headers = {"Content-type""application/x-www-form-urlencoded"  
  10.                     , "Accept""text/plain"}  
  11.   
  12.     httpClient = httplib.HTTPConnection("localhost"80, timeout=30)  
  13.     httpClient.request("POST""/test.php", params, headers)  
  14.   
  15.     response = httpClient.getresponse()  
  16.     print response.status  
  17.     print response.reason  
  18.     print response.read()  
  19.     print response.getheaders() #获取头信息  
  20. except Exception, e:  
  21.     print e  
  22. finally:  
  23.     if httpClient:  
  24.         httpClient.close()  

抱歉!评论已关闭.