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实现提取百度搜索结果的方法
May 19 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
Python实现的购物车功能示例
Feb 11 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
Python 列表的清空方式
Jan 13 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
Django实现文章详情页面跳转代码实例
Sep 16 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实现多进程并行执行脚本
2013/06/18 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
PHP7多线程搭建教程
2017/04/21 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
django解决跨域请求的问题
2018/11/11 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
详解Python的三种可变参数
2019/05/08 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
python 基于opencv去除图片阴影
2021/01/26 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
联谊会主持词
2014/03/26 职场文书
小学数学课题方案
2014/06/15 职场文书
素质教育培训心得体会
2016/01/19 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
Nginx 匹配方式
2022/05/15 Servers