python 发送get请求接口详解


Posted in Python onNovember 17, 2020

简介

如果想用python做接口测试,我们首先有不得不了解和学习的模块。它就是第三方模块:Requests。 虽然Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。更好的方案是使用

requests。它是一个Python第三方库,处理URL资源特别方便。查看其中文官网:http://cn.python-requests.org/zh_CN/latest/index.html英文官网:http://www.python-requests.org/en/master/ 可以看一下它的很多实用的高级功能。

功能特性

Requests 完全满足今日 web 的需求。

  • Keep-Alive & 连接池
  • 国际化域名和 URL
  • 带持久 Cookie 的会话
  • 浏览器式的 SSL 认证
  • 自动内容解码
  • 基本/摘要式的身份认证
  • 优雅的 key/value Cookie
  • 自动解压
  • Unicode 响应体
  • HTTP(S) 代理支持
  • 文件分块上传
  • 流下载
  • 连接超时
  • 分块请求
  • 支持 .netrc

环境安装(安装requests)

您如果安装了Anaconda,requests就已经可用了。否则,需要在命令行下通过pip安装:

pip install requests

注意:pip很容易就会版本升级,

方法1:检测并更新

pip list ?outdated

方法2:

♦先卸载:

pip uninstall packagename

♦在用:easy_install.exe安装

easy_install.exe pip

python 发送get请求接口详解

出现Installing collected packages: idna, chardet, certifi, requests

Successfully installed certifi-2019.3.9 chardet-3.0.4 idna-2.8 requests-2.21.0 说明requests模块安装成功!

使用requests(get请求无参数param)

1、将安装好的requests模块导入后,通过GET访问一个URL地址的网页页面,如:https://www/douban.com

2、这里的 r 也就是 response,请求后的返回值,可以调用 response 里的 status_code 方法查看状态码

3、状态码 200 只能说明这个接口访问的服务器地址是对的,并不能说明功能 OK,一般要查看响应的内容,r.text 是返回文本信息

看吧!这个就是requests的威力,看起来是不是很神奇很牛逼:

python 发送get请求接口详解

使用requests(get请求有参数param)

1、再发一个带参数的 get 请求,如在豆瓣网搜索:西游记,url 地址为:https://www.douban.com/search?q=西游记

2、请求参数:q=西游记,可以以字典的形式传参:{"q": "西游记"}

3、多个参数格式:{"key1": "value1", "key2": "value2", "key3": "value3"}

python 发送get请求接口详解

这部分最容易犯错的部分,就是1、豆瓣网址后没有+/search;2、params错误的写成param

使用request(get获取响应文本content)

1、豆瓣网首页如果用 r.text 会发现获取到的内容有乱码,因为豆瓣网首页响应内容是 gzip 压缩的(非 text 文本)

python 发送get请求接口详解

2、如果是在 fiddler 工具乱码,是可以点击后解码的,在代码里面可以用 r.content 这个方法,content 会自动解码 gzip 和 deflate 压缩(这个就是开始介绍requests的高级功能:自动解码和自动解压)

python 发送get请求接口详解

附录response返回的其他信息

1.response 的返回内容(content)还有其它更多信息

-- r.status_code #响应状态码

-- r.content #字节方式的响应体,会自动为你解码 gzip 和deflate 压缩

-- r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回 None

-- r.json() #Requests 中内置的 JSON 解码器,requests的方便之处还在于,对于特定类型的响应,例如JSON,可以直接获取

-- r.url # 获取 url

-- r.encoding # 编码格式,requests自动检测编码

-- r.cookies # 获取 cookie

-- r.raw #返回原始响应体-- r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

-- r.raise_for_status() #失败请求(非 200 响应)抛出异常

小结

用requests发送get请求的接口,就是这么简单!想要学的赶快行动起来,键盘敲起来,你可以用自己的博客园练习一下。

到此这篇关于python 发送get请求接口详解的文章就介绍到这了,更多相关python 发送get请求接口内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

原文地址:https://www.cnblogs.com/du-hong/p/10557042.html

Python 相关文章推荐
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
python3实现高效的端口扫描
Aug 31 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python 列表中的修改、添加和删除元素的实现
Jun 11 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 Python
python 使用tkinter+you-get实现视频下载器
Nov 17 #Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 #Python
Pycharm安装第三方库失败解决方案
Nov 17 #Python
Restful_framework视图组件代码实例解析
Nov 17 #Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 #Python
Manjaro、pip、conda更换国内源的方法
Nov 17 #Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 #Python
You might like
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
php include加载文件两种方式效率比较
2010/08/08 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
HTML5应用之文件上传
2016/12/30 HTML / CSS
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
电气技术员岗位职责
2013/11/19 职场文书
终端业务员岗位职责
2013/11/27 职场文书
高三生物教学反思
2014/01/25 职场文书
团日活动总结报告
2014/06/25 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
难以忽视的真相观后感
2015/06/05 职场文书