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读写文件操作示例程序
Dec 02 Python
Python读写配置文件的方法
Jun 03 Python
Python实现股市信息下载的方法
Jun 15 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
python实现学生管理系统
Jan 11 Python
python中文编码与json中文输出问题详解
Aug 24 Python
Python列表切片操作实例总结
Feb 19 Python
使用pandas的box_plot去除异常值
Dec 10 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
在python下实现word2vec词向量训练与加载实例
Jun 09 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
Django自带用户认证系统使用方法解析
Nov 12 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
JS实现滑动插件
2020/01/15 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
《当代神农氏》教学反思
2016/02/23 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
python中的sys模块和os模块
2022/03/20 Python