Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26026
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2022-12-14 16:49
文章分类

全部博文(38)

文章存档

2024年(4)

2023年(28)

2022年(6)

我的朋友

分类: JavaScript

2023-02-20 17:22:12

HTTP协议无状态,书面点的说法是指协议对于交互性场景没有记忆功能,直白点的说,就是HTTP刷新后,不记得你之前做了什么设置,通常要解决cookie记录登录状态的方法有以下几种:

1.直接把用户名和密码保持到cookie中,不过目前此类方法风险比较大,一般不把密码等重要信息保存到Cookie中。

2.把密码加密后保存到Cookie中,下次访问时解密并与数据库比较。

3.加密账号后连同账号一块保存到Cookie中。

4.利用session会话将cookies等值自动传到下一个接口。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

手动传cookies有一定的繁琐:

点击(此处)折叠或打开

  1. import requests
  2.  
  3. # 登录接口
  4. log_url = ""
  5. # 登录参灵敏
  6. data = {"accounts": "longge",
  7.     "pwd": "888888"}
  8. # 头部信息
  9. head = {"X-Requested-With": "XMLHttpRequest"}
  10. login_response = requests.post(log_url, data=data, headers=head)
  11.  
  12. # 获取cookie,传给下面订单接口
  13. cookie = login_response.cookies
  14.  
  15. # 订单接口
  16. order_url = ""
  17. order_response = requests.get(order_url, cookies=cookie)
  18. print(order_response.text)

不过我们也可以尝试session会话管理,订单接口自动带上cookeis,这样我们就可以保持会话,将cookies等值自动传到下一个接口:



点击(此处)折叠或打开

  1. import requests
  2.  
  3. # 登录接口
  4. log_url = ""
  5. # 登录参灵敏
  6. data = {"accounts": "longge",
  7.     "pwd": "888888"}
  8. # 头部信息
  9. head = {"X-Requested-With": "XMLHttpRequest"}
  10.  
  11. # 实例化session对像
  12. session = requests.session()
  13.  
  14. login_response = session.post(log_url, data=data, headers=head)
  15.  
  16. # 订单接口
  17. order_url = ""
  18. # 不用手动传入cookies值,因为session自动带上了
  19. order_response = session.get(order_url)
  20. print(order_response.text)
  21. # 打印cookies
  22. print(session.cookies)


阅读(293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~