Python发送请求的方式是怎样,如何实现
Admin 2022-08-17 群英技术资讯 546 次浏览
应为从最开始写这个 Python全栈系列 一直使用的就是 python3.x (这里我使用的是 python 3.8 版本) ,实际上 python 3 本身自带的就有能够实现发送请求的模块:
以上两个都可以实现发送 http 请求,也就是说它们都可以帮助我们完成接口测试。不过相对于来说它们更偏向于底层,需要更多的定义,所以在使用上面比较的麻烦;
在实际的工作中,使用的更多的反而是第三方库 resuests ,为什么会选择使用 resuests ?那是因为它是经过二次集成、二次封装的,它能够让我们发送请求变得更简单,支持编码、解码、会话保持、长链接、可以加载 Header等等等等。
这也是我们使用 Python 做接口测试的一个首选方式,接下来就学习一下如何安装并使用 requests 库 吧。
安装 Requests 库 其实也非常的简单,直接在 terminal 终端 执行 pip install requests , 见下图:
也可以通过设置中心去安装,在 Windows 系统,选择的是 File --> Settings... ,Mac 系统选择的是 PyCharm --> Preferences... 如下图:
如果安装失败,或者安装超时,可以换一个国内的源地址,或者考虑一下 ke xue shang wang 吧。
从天行数据网站可以找到公开的 空气质量接口,通过该接口,可以免费查询全国各地城市的空气质量。
API详情如下:
接口地址:http://web.juhe.cn/environment/air/cityair
**返回格式:**json
**请求方式:**get
请求示例:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值
请求参数说明:
参数 | 是否必填项 | 类型 | 说明 |
---|---|---|---|
city | yes | string | 城市名称的中文名称或拼音,如:上海 或 shanghai |
key | yes | string | APP key (注册之后申请该接口的使用,自动生成一个key) |
返回参数说明:
名称 | 类型 | 说明 |
---|---|---|
citynow | JSONObject | 当前城市的空气质量的最新结果 |
lastTwoWeeks | JSONObject | 最近几周的空气质量数据(4周28天) |
lastMoniData | JSONObject | 各监测点的数据,如果字段返回"—",可能是该监测点未监测这项数据或者有延迟 |
实现发送请求的三步:
1、组装请求 (包含 url 、请求的参数、请求的数据、 headers、cookies等等)
2、发送请求,获取响应
3、解析响应、获取到想要的文本
代码示例如下:
# coding:utf-8 import requests ''' 天行空气质量接口: get:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值 ''' url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079" # 定义url result = requests.get(url) # 使用 requests 包的 get 方法获取响应结果 print(result.text) # 打印输出 result 的文字解析
运行结果如下:
url 还支持 param 等一些信息,所以我们在组装url的时候,还可以不用像上图中那样直接去定义;可以单独定义一个 param ,以字典的形式写入我们要传入的内容。代码示例如下:
PS:"param" 就是 get 请求方法的 "url" 问号后面的内容,示例:"http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值"
# coding:utf-8 import requests ''' 天行空气质量接口: get:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值 ''' # url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079" url = "http://web.juhe.cn/environment/air/cityair" # 定义url param = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"} # 定义param result = requests.get(url=url, params=param) # 使用 requests 包的 get 方法获取响应结果 print(result.text) # 打印输出 result 的文字解析
运行结果如下:
接下来再尝试一下通过 psot 方法,运行的结果会怎么样。
代码示例如下:
# coding:utf-8 import requests ''' 天行空气质量接口: get:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值 ''' # url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079" url = "http://web.juhe.cn/environment/air/cityair" # 定义url # param = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"} # "param" 就是 get 请求方法的 "url" 问号后面的内容 data = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"} # data 的内容才是 post 方法里需要传入的参数 # result = requests.get(url=url, params=param) result = requests.post(url=url, data=data) # 使用 requests 包的 post 方法获取响应结果 print(result.text) # 打印输出 result 的文字解析
运行结果如下:
这里会发现结果与 get 方法是一致的,其实想要测试个简单的接口其实一点都不复杂… 对不对? 再接下来就准备开始一套完整的测试自动化测试的实现吧
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了Python基于ssh远程连接Mysql数据库操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
这篇文章主要介绍了Python错误+异常+模块总结,在编程时遇见错误信息在所难免,Python中会也有很多种错误信息,常见的两种就是语法错误和逻辑错误,下文我们就来总结一下那些常见的异常,需要的小伙伴可以参考一下
经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件。本文将用Python制作一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了
这篇文章主要介绍了python绘制玫瑰花,文章基于python的相关资料展开主题详细介绍,具有一定的参考价值,想情人节花式表白的小伙伴可以参考一下哟
Altair被称为是统计可视化库,因为它可以通过分类汇总、数据变换、数据交互、图形复合等。本文和大家聊一下Python当中的altair可视化模块,并且通过调用该模块来绘制一些常见的图表,感兴趣的可以了解一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008