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 11 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
微信 用脚本查看是否被微信好友删除
Oct 28 Python
利用Python如何将数据写到CSV文件中
Jun 05 Python
python+mysql实现教务管理系统
Feb 20 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Django发送邮件功能实例详解
Sep 02 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
Python 读取位于包中的数据文件
Aug 07 Python
python中pycryto实现数据加密
Apr 29 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
PHP 常见郁闷问题答解
2006/11/25 PHP
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
常用PHP框架功能对照表
2014/10/23 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
Python 存储字符串时节省空间的方法
2019/04/23 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
自考生自我评价分享
2014/01/18 职场文书
小班重阳节活动方案
2014/02/08 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
机械制造毕业生求职信
2014/03/03 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
九华山导游词
2015/02/03 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
通讯稿格式及范文
2015/07/22 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
如何使用SQL Server语句创建表
2022/04/12 SQL Server
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL