在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。
1、python发送GET请求
我在本地建立一个测试环境,python.php的内容就是输出一句话:
python发送get请求代码:
#!/usr/bin/env python # -*- coding: gbk -*- # -*- coding: utf-8 -*- # Date: 2014/8/19 # Created by 独自等待 # 博客 http://www.waitalone.cn/ import httplib httpClient = None try: httpClient = httplib.HTTPConnection('localhost', 80, timeout=10) httpClient.request('GET', '/python.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请求
修改python.php内容,打印出$_POST数组:
python发起post请求代码:
#!/usr/bin/env python # -*- coding: gbk -*- # -*- coding: utf-8 -*- # Date: 2014/8/19 # Created by 独自等待 # 博客 http://www.waitalone.cn/ import urllib, httplib httpClient = None try: params = urllib.urlencode({'name': 'waitalone.cn', 'age': '5'}) headers = {'Content-type': 'application/x-www-form-urlencoded', 'Accept': 'text/plain'} httpClient = httplib.HTTPConnection('localhost', 80, timeout=10) httpClient.request('POST', '/python.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()
友情提示:
在http操作中,有时会需要了解一些http协议的相关内容,可以前往w3c查看:http://www.w3.org/Protocols/rfc2616/rfc2616.html
转自:http://www.01happy.com/python-httplib-get-and-post/
from www.waitalone.cn.thanks for it.
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论