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实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
Python内置函数OCT详解
Nov 09 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
python实现最长公共子序列
May 22 Python
python3个性签名设计实现代码
Jun 19 Python
pyside+pyqt实现鼠标右键菜单功能
Dec 08 Python
python实现布隆过滤器及原理解析
Dec 08 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
python 如何对logging日志封装
Dec 02 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
Python循环之while无限迭代
Apr 30 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
ajax 的post方法实例(带循环)
2011/07/04 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python中class的定义及使用教程
2019/09/18 Python
Python如何执行系统命令
2020/09/23 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
违反学校规定检讨书
2014/01/18 职场文书
文明演讲稿范文
2014/05/12 职场文书
自主招生自荐信格式
2015/03/04 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
redis cluster支持pipeline的实现思路
2021/06/23 Redis
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js