Python中http请求方法库汇总


Posted in Python onJanuary 06, 2016

最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,分享给大家,具体内容如下所示:

一、python自带库----urllib2

python自带库urllib2使用的比较多,简单使用如下:

import urllib2
response = urllib2.urlopen('http://localhost:8080/jenkins/api/json?pretty=true')
print response.read()

简单的get请求

import urllib2
import urllib
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost:8080/, post_data)
print response.read()
print response.getheaders()

这就是最简单的urllib2发送post例子。代码比较多

二、python自带库--httplib

httplib是一个相对底层的http请求模块,urlib就是基于httplib封装的。简单使用如下:

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
conn.request("GET", "/parrot.spam")
r2 = conn.getresponse()
data2 = r2.read()
conn.close()

简单的get请求

我们再来看post请求

import httplib, urllib
params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
data = response.read()
print data
conn.close()

是不是觉得太复杂了。每次写还得再翻文档,看看第三种吧

三、第三方库--requests

发请get请求超级简单:

print requests.get('http://localhost:8080).text

就一句话,再来看看post请求

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text

也很简单。

再看看如果要认证:

url = 'http://localhost:8080'
r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin'))
print r.status_code
print r.headers
print r.reason

是不是比urllib2更简单多了吧,且requests自带json解析。这点非常棒

python中的http请求

import urllib
params = urllib.urlencode({key:value,key:value})
resultHtml = urllib.urlopen('[API or 网址]',params)
result = resultHtml.read()
print result
Python 相关文章推荐
python基础教程之获取本机ip数据包示例
Feb 10 Python
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python线程中对join方法的运用的教程
Apr 09 Python
python脚本替换指定行实现步骤
Jul 11 Python
教你学会使用Python正则表达式
Sep 07 Python
python 删除非空文件夹的实例
Apr 26 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
python 字典的打印实现
Sep 26 Python
python实现超市管理系统(后台管理)
Oct 25 Python
基于Django集成CAS实现流程详解
Nov 28 Python
python入门学习关于for else的特殊特性讲解
Nov 20 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 #Python
分享Python文本生成二维码实例
Jan 06 #Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 #Python
使用Python神器对付12306变态验证码
Jan 05 #Python
Python聊天室实例程序分享
Jan 05 #Python
详解Python Socket网络编程
Jan 05 #Python
菜鸟使用python实现正则检测密码合法性
Jan 05 #Python
You might like
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
php读取3389的脚本
2014/05/06 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
angular十大常见问题
2017/03/07 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
Python简单生成随机数的方法示例
2018/03/31 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
matplotlib实现区域颜色填充
2019/03/18 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
个人自我剖析材料
2014/02/07 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
深度学习详解之初试机器学习
2021/04/14 Python