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 Socket编程入门教程
Jul 11 Python
探究Python中isalnum()方法的使用
May 18 Python
Django发送html邮件的方法
May 26 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
python+opencv识别图片中的圆形
Mar 25 Python
python print 按逗号或空格分隔的方法
May 02 Python
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
python dict乱码如何解决
Jun 07 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
你需要掌握的20个Python常用技巧
Feb 28 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/11/28 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
Vue计算属性的使用
2017/08/04 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python中的列表推导浅析
2014/04/26 Python
Python机器学习之决策树算法
2017/12/22 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
邹越感恩父母演讲稿
2014/08/28 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
作弊检讨书
2015/01/27 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python