session会话管理
如何理解http协议里的无状态
为什么用到cookie
为什么要用到会话管理?
手动传入cookie
session会话管理
如何理解http协议里的无状态
比如商场购物车,你把东西放到购物车,如果http协议的话,刷新页面,购物车就为空了
简单理解就是http刷新后就不会记得你之前做了什么
为什么用到cookie
web2.0交互时代,所以就引用cookie和seesion来记录状态,比如登录
为什么要用到会话管理?
如果很多个接口都要用到cookies,如果每次都要手动传cookies是不是很麻烦???
手动传入cookie
请求购物车接口(没有登录的情况),如果没传入cookie,就无法查看到购物车里的商品(就是刚刚说的httpt是无状态的)
请求购物车接口时,必须手动带上cookie参数,才能查看到购物车内的商品
那么有没有一种方式,订单接口自动能带上cookeis?不用手动去传cookies!
# -*- coding: utf-8 -*- # @Author : 微信公众号程序员一凡 import requests # 登录接口 log_url = "http://shopxo.hctestedu.com/index.php?s=/index/user/login.html" # 登录参灵敏 data = {"accounts": "laozhu", "pwd": "123456"} # 头部信息 head = {"X-Requested-With": "XMLHttpRequest"} login_response = requests.post(log_url, data=data, headers=head) # 获取cookie,传给下面订单接口 cookie = login_response.cookies # 订单接口 order_url = "http://shopxo.hctestedu.com/index.php?s=/index/cart/index.html" order_response = requests.get(order_url, cookies=cookie) print(order_response.text)
session会话管理
可以保持会话,将cookies等值自动传到下一个接口(注意:是自动传到下一个接口)
换句话说,就是不用手动去传cookie的值
# -*- coding: utf-8 -*- # @Author : 微信公众号程序员一凡 import requests # 登录接口 log_url = "http://shopxo.hctestedu.com/index.php?s=/index/user/login.html" # 登录参灵敏 data = {"accounts": "laozhu", "pwd": "123456"} # 头部信息 head = {"X-Requested-With": "XMLHttpRequest"} # 实例化session对像 session = requests.session() login_response = session.post(log_url, data=data, headers=head) # 订单接口 order_url = "http://shopxo.hctestedu.com/index.php?s=/index/cart/index.html" # 不用手动传入cookies值,因为session自动带上了 order_response = session.get(order_url) print(order_response.text) # 打印cookies print(session.cookies)
最后:
未来的你肯定会感谢现在拼命的自己!