学校网站建设意义有哪些,wordpress网站网速慢,论坛交流平台有哪些,移动端网页设计图片目录
引言
一、模块说明
二、Requests模块快速入门
1 发送简单的请求
2 发送带参数的请求
3 定制header头和cookie
4 响应内容
5 发送post请求
6 超时和代理
三、Requests实际应用 引言 在使用Python进行接口自动化测试时#xff0c;实现接口请求…目录
引言
一、模块说明
二、Requests模块快速入门
1 发送简单的请求
2 发送带参数的请求
3 定制header头和cookie
4 响应内容
5 发送post请求
6 超时和代理
三、Requests实际应用 引言 在使用Python进行接口自动化测试时实现接口请求构建主要是使用Requests模块。Requests库是python的第三方模块requests模块在python内置模块的基础上进行了高度的封装从而使得python进行网络请求时变得更加简洁和人性化以下介绍python Requests模块的主要操作和应用。
一、模块说明
Requests模块是第三方模块需要预先安装requests模块在python内置模块的基础上进行了高度的封装从而使得python进行网络请求时变得更加简洁和人性化。它几乎完全用python编写比urllib2模块更易方便构建请求。Requests模块支持HTTP连接保持和连接池支持使用cookie保持会话支持文件上传支持自动响应内容的编码支持国际化的URL和POST数据自动编码等功能特性。具体的功能特性介绍可以学习requests中文文档requests模块同时支持python2和python3相关的版本。中文在线文档总结的模块特性 安装requests模块
要安装 Requests打开cmd直接pip安装,或pycharm中搜索requests 安装即可
1.Pip安装pip install requests
2.Pycharm 中搜索 requests 安装 二、Requests模块快速入门
开始导入requests模块然后即可使用该模块下所有高度封装的方法或者类。 1 发送简单的请求
使用requests发送网络请求如访问百度我们只需按如下方式发送请求即可。
可以这样
r requests.get(https://www.baidu.com/)
也可以这样
url https://www.baidu.com/
r requests.get(urlurl)
其他的请求方式大体都是这样 2 发送带参数的请求 我们在构建url发送请求时往往会传递一些数据这些数据往往会以键/值对的接在url中接在一个问号后面编辑如下代码如请求百度服务器地址查询requests那这个请求的url就像这样
import requests
url https://www.baidu.com/
data {wd:requests}
r requests.get(urlurl,paramsdata)
print(r.url)
打印出请求的urlr.url是获取发送请求的url https://www.baidu.com/?wdrequests
一般发送get请求是将需要传递的参数传递到params中即可上面实例params传递的是字典类型数据当然也可以将一个列表作为值传入
payload {key1: value1, key2: [value2, value3]} r requests.get(http://httpbin.org/get, paramspayload) print(r.url)
输出url:
http://httpbin.org/get?key1value1key2value2key2value3 3 定制header头和cookie
在发送请求时往往需要为请求添加http请求头,requests库也可以简单构建传递请求头只要一个dict传递给请求的headers参数即可
headers {Accept: application/json, text/plain, */*,User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}
r requests.get(urlurl,paramsdata,headersheaders)
有时有些请求需要携带cookie信息在发送请求时也只要传递给请求的cookie参数即可 4 响应内容
使用requests方法后会返回一个response对象其存储了服务器响应的内容。在发送请求后有时我们需要获取发送请求的目标服务的返回信息如返回状态码、返回数据体等以及以什么样的解码方式返回数据。如下是response对象封装的方法 5 发送post请求
HTTP 协议规定 POST 提交的数据必须放在消息主体entity-body中但协议并没有规定数据必须使用什么编码方式,服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码再对消息主体进行解析。一般常用的提交数据方式包括
1以form表单提交数据
请求头中的Content-Type值为application/x-www-form-urlencoded,Reqeusts支持以form表单形式发送post请求只需要将请求的参数构造成一个字典然后传给requests.post()的data参数即可。
实例 2以json形式发送post请求
请求头中的Content-Type值为application/json,Reqeusts支持以json串形式发送post请求只需要将一个python字典类型的数据转换成json格式然后传给requests.post()的data参数即可。
实例 3以multipart/form-data形式上传文件
经常用到的是上传文件用的表单请求头中的Content-Type值为multipart/form-dataRequests支持以multipart形式发送post请求只需将一文件传给requests.post()的files参数即可。
实例 6 超时和代理
Requests也支持方便构建请求超时和代理设置只需分别将请求数据传递给timeout和proxies即可代码实例 三、Requests实际应用
1. 网页数据爬虫Requests能方便的构建和发送基于HTTP协议的网络请求因此可以基于Requests来编写爬虫脚本爬取互联网上目标网站的网页提取网页源代码中的图片、文本、视频等数据并可以将爬取的海量大数据应用于数据分析
2. 在软件测试项目中可以用来构建接口测试完成不同接口测试脚本和执行。 最后感谢每一个认真阅读我文章的人看着粉丝一路的上涨和关注礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!
在我的QQ技术交流群里技术交流和资源共享广告勿扰