API接口测试-使用python发送HTTP请求(Requests)

Requests库介绍:

基于urllib,使用Python语言编写,采用Apache2 Licensed开源协议的HTTP库;和urllib库相比,Requests库更加方便。

(国外)安装方法一:

pip install requests

(国内)安装方法二:

pip install requests -i https://pypi.douban.com/simple/

Requests语法:

resp = requests.get(url='URL地址',headers={K:V},data={K:V},json={K:V},cookies=cookie数据[如:令牌])

其中:
get()对应要发送的http请求方法,可根据实际情况修改为post、put、delete
url:对应http请求行中的url
headers:对应http请求的请求头。键值对格式{key:value}
data:针对表单类型的  请求体。数据格式同上,也是键值对{key:value}
json:针对json类型的  请求体。数据格式同上,也是键值对{key:value}
cookies:存储的用户相关的信息
resp:代表http请求发送成功后返回的响应包(响应行、响应头、响应体)

例:
import requests
导包

resp = requests.post(url='https://www.baidu.com',
                     # 填写url
                     headers={"Content-Type": "application/x-www-form-urlencoded"},
                     # 填写请求头
                     data={"username": "liuguoxing", "passwd": "123456"})
没有其它信息需求可以不携带,参数可选
print(resp.text)
打印文本格式的响应
print(resp.json())
打印json格式响应

Cookie的捕获和传递:

import requests
导包

resp = requests.get(url='http://xxxx')
请求url获取响应内容
my_cookie = resp.cookies
捕获cookie
resp_2 = requests.post(url='xxx', headers='xxx', data='xxx', cookies=my_cookie)
cookie在两个请求之间的传递
print(resp_2.text)
打印第二个接口内容

不常用获取方法↓
'''
resp.url   获取URL
resp.status_code   获取状态码
resp.encoding  获取编码格式
resp.headers   获取响应头
resp.text 获取文本格式响应体数据
resp.content  获取字节码格式响应体数据
resp.json()  获取json格式响应体数据
'''

Cookie相关介绍:

  • cookie不是http协议自带,是工程师为了弥补http是无状态协议的这一特性而发明的技术。
  • cookie主要存在浏览器端(客户端),主要用来存储少量的用户不敏感信息。
  • cookie的默认大小是4K(可以扩展),存储数据量较小。
  • cookie中的数据,可以十分方便的获取到。因此,一般不用来存储重要敏感数据。

Cookie+Session认证方式:

上图以百度的访问请求为例,描述sessionID的传递过程,其中session ID经过哈希算法加密ID的部分已省略。

Session相关介绍:

  • Session 就是”会话”
  • Session 出现在计算机网络通信中,从浏览器与服务器建立连接开始,一直到与服务器断开连接,以上整个过程称之为一个”会话”。如:输入用户名、密码登录,产生会话——用户注销、退出、浏览器关闭,会话结束。

Session特性:

  • Session 不是http协议的一部分,也不是浏览器的一部分
  • Session的数据是保存在服务器端的
  • Session中可以保存的数据类型较为广泛,容量较大。(受服务器影响)
  • 可以借助Session来管理cookie

通过Session管理cookie:

例子场景:先请求验证码获取接口,再将验证码接口返回的内容传递给登录接口

1.my_session = requests.Session()
2.resp_verify = my_session.get(url='xxx')
3.resp_login = my_session.post(url='xxx',data='xxxx',headers='xxxx')
4.my_session.close()

通过session管理cookie可以不需要传递cookie,实现了自动传参

以上就是利用Requests发送HTTP请求以及利用session完成cookie的自动传递方法了,如有疑问欢迎评论区留言讨论~

❤关注我,不迷路❤

*我的本文相关专栏*

*我的其它作品专栏*

Original: https://blog.csdn.net/Liu_GuoXing/article/details/127507843
Author: @Liu_GuoXing
Title: API接口测试-使用python发送HTTP请求(Requests)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/672598/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球