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中的异常处理简明介绍
Apr 13 Python
python二分查找算法的递归实现方法
May 12 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
Sanic框架安装与简单入门示例
Jul 16 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
Python for i in range ()用法详解
Sep 18 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
利用python绘制数据曲线图的实现
Apr 09 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python装饰器原理与用法分析
2018/04/30 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
基于Python实现用户管理系统
2019/02/26 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
学生党员思想汇报范文
2014/01/09 职场文书
财产公证书
2014/04/10 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
资金申请报告范文
2015/05/14 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
决心书格式及范文
2019/06/24 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js