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的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
Django中cookie的基本使用方法示例
Feb 03 Python
Python中的heapq模块源码详析
Jan 08 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
Aug 13 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
python如何判断IP地址合法性
Apr 05 Python
什么是python的自省
Jun 21 Python
5行Python代码实现一键批量扣图
Jun 29 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用户指南-cookies部分
2006/10/09 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python 自动刷博客浏览量实例代码
2017/06/14 Python
pandas string转dataframe的方法
2018/04/11 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
python opencv实现图像边缘检测
2019/04/29 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
软件测试题目
2013/02/27 面试题
工程造价专业大专生求职信
2013/10/06 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技