Pycharm — Requests

发布时间 2023-07-18 16:28:15作者: 鹿先森JIAN

Requests库

能够使用Requests库发送get/post/put/delete请求,获取响应状态码、数据

能够使用UnitTest管理测试用例

简介与安装

Requests库是Python编写的,基于urllib的HTTP库,使用方便。

安装:pip install requests

镜像安装:pip install requests -i https://pypi.douban.com/simple/

验证:pip show requests

获取指定响应数据

获取URL:resp.url

获取 响应状态码:resp.status_code

获取 Cookie:resp.cookies

获取 响应头:resp.headers

获取 响应体:

文本格式:resp.text

json格式:resp.json()

设置http请求语法

Get请求 + 请求参数:params

Post请求 + json参数:headers、json

【发送put、delete请求】修改员工信息、删除员工信息

Post请求 + 表单参数—data、headers

Cookie

简介

浏览器端存储用户的信息。

特性:

  • cookie用于存储用户临时的不敏感信息。
  • cookie位于浏览器(客户端)端。默认大小4k(可以调整)
  • cookie中的数据,可以随意被访问,没有安全性可言。
  • cookie中存储的数据类型,受浏览器限制。

Cookie + Session 认证方式

在计算机中,认证用户身份的方式有多种!课程中接触2种:

ihrm项目:token认证。

tpshop项目:cookie+Session认证。

  1. 用户登录:首先用户进行登录操作,用户在登录页面输入用户名和密码,并发送给服务端,服务端验证通过后会生成一份保存用户相关信息的Session数据,同时生成一个对应标识(Session_ID)并写入用户浏览器中的cookie。
  2. 请求验证:当用户发请求时会自动携带包含Session_ID的Cookie,然后服务端从Cookie获取Session_ID并验证Session数据是否存在。
  3. 认证通过:如果Session数据存在且有效,则服务端认为用户已登录并允许访问请求的资源。
  4. 认证失败:如果Session不存在或已过期,服务端会重定向到登录页面。
  5. 用户注销:如果用户选择注销,服务端将销毁当前Session,并从Cookie中删除Session ID。

Cookie-Session模式依赖于客户端保存Cookie,并且在服务端存储用户的Session数据。

案例:TPshop商城:登录,查看“我的订单”

Session

简介

也叫会话。通常出现在网络通信中,从客户端借助访问终端登录上服务器,直到“退出登录”所产生的通信数据,保存在会话中。

特性:

  • Session用于存储用户的信息。
  • Session位于服务器端。大小直接使用服务器存储空间。
  • Session中的数据,不能随意被访问,安全性较高。
  • Session中存储的数据类型,受服务器影响,几乎能支持所有的数据类型。
  • 因为Cookie中的数据,都是Session传递的。因此,Session可以直接自动管理cookie。

案例

借助session重新实现上述TPshop商城登录,并获取“我的订单”页面数据。

实现步骤:

1. 创建一个Session实例。

2. 使用Session实例,调 get方法,发送获取验证码请求。(无需获取cookie)

3. 使用同一个Session实例,调用post方法,发送登录请求。(无需携带cookie)

4. 使用同一个Session实例,调用get方法,发送查看我的订单请求。(无需携带cookie)

面试题 Cookie 和 Session 区别

  • 1. 数据存储位置:cookie存储在浏览器;session存储在服务器。
  • 2. 安全性:cookie中的数据可以随意获取,没有安全性可言。Session的数据多为加密存储,安全较高。
  • 3. 数据类型:cookie支持的数据类型受浏览器限制,较少;Session直接使用服务器存储,支持所有数据类型。
  • 4. 大小:cookie大小默认4k;Session大小约为服务器存储空间大小。