专栏首页北京宏哥python接口自动化(十四)--session关联接口(详解)

python接口自动化(十四)--session关联接口(详解)

简介

  上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下。

session简介

1、通过help方法查看帮助文档,截图一部分,后面省略了,有兴趣的自己可以敲一下看看

2、参考代码

1 # coding:utf-8
2 import requests
3 help(requests.session())

使用session登录

1、使用session登录只需在登录的基础上稍做修改,即可

2、参考代码

# coding:utf-8
import requests
# 先打开登录首页,获取部分session
url = "http://localhost:8080/jenkins/j_acegi_security_check"
headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
           }  # get方法其它加个ser-Agent就可以了
d = {"j_username": "admin",
     "j_password": "111111",
     "from": "",
     "Submit": u"登录",
     "remember_me": "on"
     }
s = requests.session()
r = s.post(url, headers=headers, data=d)
#print (r.content.decode('utf-8'))

保存编辑

1、先打开新建任务,手动输入任务名称和选择下边选项后,打开fiddler抓包,然后点击“确定”

fiddler抓包

2、把body的参数内容写成字典格式

参考代码:

1 body = {"name":"北京-宏哥1",
2         "mode": "hudson.model.FreeStyleProject",
3         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
4         "json":{"name":"北京-宏哥1",
5                 "mode": "hudson.model.FreeStyleProject",
6                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
7 
8         }
9 }

3、用上面登录保存的session继续发送post请求,来新建任务

4、执行后,查看所有任务就多了一条新增的了

5、运行结果部分截图:

6、粘贴到记事本修改后缀查看:

参考代码

 1 # coding:utf-8
 2 import requests
 3 # 先打开登录首页,获取部分session
 4 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 5 headers = {
 6             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 7            }  # get方法其它加个ser-Agent就可以了
 8 d = {"j_username": "admin",
 9      "j_password": "111111",
10      "from": "",
11      "Submit": u"登录",
12      "remember_me": "on"
13      }
14 
15 s = requests.session()
16 r = s.post(url, headers=headers, data=d)
17 #print (r.content.decode('utf-8'))
18 # 正则表达式提取账号和登录按钮
19 import re
20 t = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8'))   # 用python3的这里r.content需要解码
21 print (t[0])
22 print (t[1])
23 #新建任务
24 url1 = "http://localhost:8080/jenkins/createItem"
25 body = {"name":"北京-宏哥1",
26         "mode": "hudson.model.FreeStyleProject",
27         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
28         "json":{"name":"北京-宏哥1",
29                 "mode": "hudson.model.FreeStyleProject",
30                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
31 
32         }
33 }
34 
35 r2 = s.post(url1, data=body, verify=False)
36 print (r2.content.decode('utf-8'))

这里我是用新建任务写的案例,小伙伴可以试下Jenkins里边其他的关联接口

小结

小伙伴都看到了吧,session关联接口就是这么简单!!!赶快动起来吧。想要学习的小伙伴可以用博客园来练习一下,遇到问题欢迎打扰和沟通!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「网络安全」Web防火墙和下一代防火墙的区别

    客户经常询问“当我已经拥有下一代防火墙(NGFW)时,为什么需要Web应用程序防火墙(WAF)?”。本博文的目的是解释两种解决方案之间的区别,重点关注Web应用...

    首席架构师智库
  • IDEA的Docker插件实战(Dockerfile篇)

    IntelliJ IDEA的Docker插件能帮助我们将当前工程制作成Docker镜像、运行在指定的远程机器上,是学习和开发阶段的好帮手,本文一起来实战此插件的...

    程序员欣宸
  • 通俗易懂--循环神经网络(RNN)的网络结构!(TensorFlow实现)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    mantch
  • ProcessShellCommand(cmdInfo) 的用法和功能

    原文链接:https://blog.csdn.net/wangandy7811/article/details/3663447

    acoolgiser
  • SpringCloud学习2-Springboot监控模块

    学习一项新技术最大的困难是什么? 是资料。让人高兴的是找到了一本系统学习Spring Cloud的教程,《Spring Cloud微服务实战》, 接下来的学习目...

    啦啦啦
  • 小白学Flask第五天 | 详解很重要的request对象

    就是 Flask 中表示当前请求的 request 对象,request对象中保存了一次HTTP请求的一切信息。

    JAVAandPython君
  • Http接口调用示例教程

    本文链接:https://blog.csdn.net/u014427391/article/details/97398717

    用户1208223
  • 爬虫篇| 爬虫中的urllib库使用(三)

    我们首先了解一下 Urllib 库,它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使用,它包含四个模块:

    用户6029108
  • springCloud - 第13篇 - 服务监控 集群模式 Hystrix-turbine

    1. 在springcloud 体系中,可以用 hystrix-dashboard 实时监控服务的运行状态。上一文记录了单实例的监控,现在实现集群监控。

    微风-- 轻许--
  • 三步理解--门控循环单元(GRU),TensorFlow实现。

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    mantch

扫码关注云+社区

领取腾讯云代金券