首页 > 编程语言 >python接口自动化——接口登录获取session、cookie

python接口自动化——接口登录获取session、cookie

时间:2024-08-29 17:53:39浏览次数:10  
标签:username python 接口 url session login password data

【参考】

方法一参考链接如下,直接获取返回的cookie失败,拿到的cookies是空。(因为登录的url返回用f12看着是空的,用Charles才能看到,进行了重定向,返回了重定向的url)

https://baijiahao.baidu.com/s?id=1781328761925882355&wfr=spider&for=pc

 

方法二参考链接如下,去拿session,再使用session去post、get等操作,成功

https://blog.51cto.com/u_16213378/11283949

 

【实际操作】

使用方法二,访问登录url之后,就获取到了session。

 1 import requests
 2 
 3 login_url="http://dlg.chinawyny.com/uaas/login"
 4 
 5 login_data={
 6 'username': '18xxxxxxxxx4',
 7 'password': 'e1xxxxxxxxxxxxxxxx057f20f883e'
 8 }
 9 
10 s=requests.session()
11 
12 res=s.post(url=login_url,data=login_data)
13 
14 res=s.get(url="http://dlg.chinawyny.com/api/front/user/list?pageNo=1&pageSize=10")
15 print(res.json())
View Code

 

还有一种情况,登录的url未返回session,需要继续访问重定向的url,才能获取到session。

 1 def user_login(self, username, password):
 2         """
 3         用户登录并返回cookie
 4         :param username:
 5         :param password:
 6         :return:
 7         """
 8         s = requests.session()
 9         uaas_login = "/uaas/login"
10         headers = {"Accept": "application/json,text/plain,*/*"}
11         s2 = s.post(self.base_url + uaas_login, headers=headers,
12                     data={"username": username, "password": hashlib.md5(password.encode()).hexdigest()})
13         s3 = s.get(s2.json()["data"]["recommendedRedirectURI"])
14         api_login = "/api/login"
15         s4 = s.get(self.base_url + api_login)
16         return s
View Code

登录后,直接用s.post s.query就可以请求别的接口了

标签:username,python,接口,url,session,login,password,data
From: https://www.cnblogs.com/hushuer/p/18387304

相关文章

  • 使用Flask快速构建Web后端项目:Python、Flask、Mysql、Migrate、SQLAlchemy、Login、Se
    Flask是一个用Python编写的轻量级Web应用框架。它设计简单且易于扩展,如果与Jinja2模板引擎和WerkzeugWSGI工具集结合使用,Flask可以用来快速开发小型到中型的网站。Flask鼓励快速开发和简洁的代码,同时保持了扩展性和灵活性。本文旨在如何使用Flask及其相关组件快......
  • python基础个人笔记
    一、基础变量    可使用type(param)查看变量类型    1.整型int         可使用int(param)强转    2.浮点型float                可使用float(param)强转    3.复数complex       ......
  • 电商领域的新引擎:API接口的革命性应用
     在数字化转型的大潮中,电商行业正经历着前所未有的变革。API接口,作为连接不同系统和服务的桥梁,正在成为电商领域的新引擎。本文将探讨电商API接口如何助力企业释放数据潜力,驱动业务增长。一、电商API接口:连接的力量API(ApplicationProgrammingInterface)接口是软件系统之间交互的......
  • 电商领域的新引擎:API接口的革命性应用
    在数字化转型的大潮中,电商行业正经历着前所未有的变革。API接口,作为连接不同系统和服务的桥梁,正在成为电商领域的新引擎。本文将探讨电商API接口如何助力企业释放数据潜力,驱动业务增长。一、电商API接口:连接的力量API(ApplicationProgrammingInterface)接口是软件系统之间交互......
  • python打包exe文件注意事项
    1.进入虚拟环境一开始使用pipenvshell,后续可以使用conda。使用虚拟环境可以尽量减小软件包的大小,减少不相关包的引入。2.当前环境目录中不要有__init__.py因为,打包时很可能被当为环境,不再打包其他文件。3.制作main.spec安装pyinstaller包,配置你的exe的icon。pipinstal......
  • Python可控制线程与TCP服务单元编程
    大家好,我之前在我的CSDN博客上面发了一条《C++可控制线程》的文章,里面介绍了在线程中植入类似状态机的东西,进而将多线程编程进化为“服务单元”编程的技术。接下来我们来看一个基于此项目的Python的TCP服务单元代码。------------------------------------------------------......
  • 【Python】将网格数据写入到VTK文件
    1.vtk文件格式根据官网进行总结vtk文件组成:5个部分.第一部分,第一行:表明文件版本.写"#vtkDataFileVersion2.0"就行第二部分,第二行:表明标题(title).随便写.第三部分,第三行:ASCII或者BINARY第四部分,开始定义datasetstructure.这部分用于描述数据集的几何和拓扑......
  • Android开发 - Serializable 接口对对象进行“打包”传递和接收后“解包”解析
    Serializable是什么Serializable是一种接口,用于将对象转换成字节流。通俗地说,Serializable是一种让对象能够“打包”和“解包”的方式,使得它们可以在存储和传输时保留其状态和数据Serializable的好处在程序中,我们经常需要在不同地方传递数据,比如在两个Activity之间传......
  • Python模块之functools.partial
    在Python编程中,functools.partial是一个强大的工具,它提供了一种部分应用函数的方式,能够在创建新函数时固定部分参数,从而在后续调用中减少需要传递的参数数量。本文将深入介绍functools.partial的基本概念、使用方法,并通过丰富的示例代码演示其在不同场景中的实际应用。什么是func......
  • firewalld: 接口interface操作
    一,查看zone和interface的关系1,查看活动区域:[root@blog~]#firewall-cmd--get-active-zonesdropsources:11.20.12.18publicinterfaces:eth0trustedsources:13.27.13.15可以看到public这个zone绑定了eth0这个interface2,查询一个interface绑定的zone[root@blo......