码迷,mamicode.com
首页 > 编程语言 > 详细

python接口自动化11-post传data参数案例

时间:2018-05-12 12:48:44      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:dia   pos   uga   cti   判断   abc   代码   ati   参考   

前言:

前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数。

 

一、登录jenkins抓包

1.登录jenkins,输入账号和密码

技术分享图片

 

2.fiddler抓包

技术分享图片

 

3.这个body参数并不是json格式,是key=value格式,也就是前面介绍post请求四种数据类型里面的第二种

技术分享图片

 

 

二、请求头部

1.上面抓包已经知道body的数据类型了,那么头部里面Content-Type类型也需要填写对应的参数类型

技术分享图片技术分享图片

三、实现登录

1、登录代码如下:

 1 # coding:utf-8
 2 import requests
 3 
 4 # 先打开登录首页,获取部分cookie
 5 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 6 headers = {
 7             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 8            }  # get方法其它加个ser-Agent就可以了
 9 d = {"from": "",
10      "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
11      "j_username": "admin",
12      "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1",
13      "json": {"j_username": "admin",
14               "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
15               "remember_me": True,
16               "from": "",
17               "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1"},
18      "remember_me": "on",
19      "Submit": u"登录"
20      }
21 s = requests.session()
22 r = s.post(url, headers=headers, data=d)
23 print r.content

 

2.打印结果

技术分享图片

 技术分享图片

 

四、判断登录是否成功

1.首先这个登录接口有重定向,看左边会话框302,那登录成功的结果看最后一个200就行

技术分享图片技术分享图片

 

2.返回的结果并不是跟博客园一样的json格式,返回的是一个html页面

 

五、判断登录成功

1.判断登录成功,可以抓取页面上的关键元素,比如:账号名称admin,退注销按钮

技术分享图片技术分享图片

 

2.通过正则表达式提出这2个关键字

技术分享图片

六、参考代码

 1 # coding:utf-8
 2 import requests
 3 
 4 # 先打开登录首页,获取部分cookie
 5 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 6 headers = {
 7             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 8            }  # get方法其它加个ser-Agent就可以了
 9 d = {"from": "",
10      "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
11      "j_username": "admin",
12      "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1",
13      "json": {"j_username": "admin",
14               "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
15               "remember_me": True,
16               "from": "",
17               "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1"},
18      "remember_me": "on",
19      "Submit": u"登录"
20      }
21 s = requests.session()
22 r = s.post(url, headers=headers, data=d)
23 
24 # 正则表达式提取账号和登录按钮
25 import re
26 t = re.findall(r<b>(.+?)</b>, r.content)
27 print t[0]
28 print t[1]

 

python接口自动化11-post传data参数案例

标签:dia   pos   uga   cti   判断   abc   代码   ati   参考   

原文地址:https://www.cnblogs.com/jason89/p/9028261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!