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使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
pycharm远程调试openstack代码
Nov 21 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
Python用字典构建多级菜单功能
Jul 11 Python
Tensorflow分批量读取数据教程
Feb 07 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
关于python类SortedList详解
Sep 04 Python
python基础之类属性和实例属性
Oct 24 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
方法汇总:Python 安装第三方库常用
Apr 26 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
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python读取word文本操作详解
2018/01/22 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
Python接口测试get请求过程详解
2020/02/28 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
python文件排序的方法总结
2020/09/13 Python
Python读写Excel表格的方法
2021/03/02 Python
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
优秀技术工人先进材料
2014/02/17 职场文书
个人自我鉴定总结
2014/03/25 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android