接口认证:

服务器的接口需要通过一个验证机制,这个验证机制可以是session或token

以session为例。

session存储与服务器,通常用户登录后,服务器会把配套的sessionid发送给客户端

客户端在下次请求服务器时会带上这个sessionid,相当于拿了入场券

服务器会验证这个入场券是否有效

验证通过后才会允许客户端去访问对应的接口内容

之后客户端每发送一次请求都要带上sessionid

同样服务器每次都会验证其有效性

通常http协议中,sessionid是放在cookies这个请求头里面

如何获取sessionid:两种方法

       ① 通过登录接口获取Set-Cookie请求头

resp = requests.post(url, data=payload)     # 首先获取到响应对象resp

cookie = resp.headers['Set-Cookie']      # 然后获取到请求头中Set-Cookie的值

sessionid = cookie.split(';')[0].split('=')[1]     # 最后用字符串分割法获取sessionid

② 通过登录接口返回的response对象直接获取

resp = requests.post(url, data=payload)

cookies = resp.cookies    # 直接获取到cookie信息

sessionid = cookies['sessionid']   # 然后从cookie中取到sessionid的值

如何添加cookie方法:三种方法

       ① 直接添加到cookie请求头里

h1 = {'Cookie': 'sessionid=imk4esz7jep90gcbt3oo790ex3srt5dc'}

requests.get(url, headers=h1, params=payload)

② 直接告诉requests,让它帮我添加添加

cookie = {'Cookie': 'sessionid=imk4esz7jep90gcbt3oo790ex3srt5dc'}

requests.get(url, cookies=cookie, params=payload)

③ 登录接口包含了cookies信息,可以直接获取

payload = {'username': 'xxxx', 'password': 'xxxx'}

resp1 = requests.post('http://localhost/api/mgr/loginReq', data=payload)   # 获取到响应对象resp1 里面包含了cookies信息

resp2 = requests.get('http://localhost/api/mgr/sq_mgr/', cookies=resp1.cookies, params=payload)   # 在做另一个接口请求时,直接获取登录接口中的cookies信息

最新文章

  1. 1Z0-053 争议题目解析175
  2. GirdView 追忆学生时代的百思不得解
  3. 用 Inkspace 做 SVG 给 TPath
  4. FMDBsqilte语句样式
  5. QQMain
  6. log4j.xml配置文件
  7. Jquery LigerUI框架学习(二)之Tree于Tab标签实现iframe功能
  8. mmc生产运输问题
  9. margin,padding之我见
  10. JSONP跨域的原理
  11. hadoop中集群节点ID不一致( java.io.IOException: Incompatible clusterIDs )
  12. 【Android入门】一个App学会安卓开发
  13. EF(二)Model Fiirst
  14. 第一二次java实训作业
  15. 教你一个vue小技巧,一般人我不说的
  16. 完美集群监控组合ganglia和nagios
  17. 如何给30台centos7服务器分别增加相同的用户
  18. UART接口与COM口的区别
  19. python-day1笔记
  20. win7原版映像中添加usb3.0驱动

热门文章

  1. Spring Cloud gateway 七 Sentinel 注解方式使用
  2. Vue学习笔记:Vue组件的核心概念(下)
  3. Batch批处理获取当前时间
  4. set map symbol
  5. 从cocos2dx源代码看android和iOS跨平台那些事
  6. 11.13的C++##不想写结构,更不爱指针
  7. GitHub远程库的搭建以及使用
  8. TypeScript SDK 和 REST API
  9. mysql--时区表问题(Windows环境下)
  10. YoungLots Team - Record a software installation