python模拟登陆遇到重定向_Python requests jira登录302重定向

总结一下自己在用Python requests库对jira进行的一个bug统计时,在登录遇到的问题,以前也遇到过登录302重定向的问题,那个时候用requests同样的方法没有获取到cookie,但是jira可以用requests获取到cookie,我也不知道怎么回事

网上百度了很多资料,好多都是用jira这个库来来统计的,但是我想自己用Python来写一下,以下做个记录,

1,首先了解一下接口登录大概的信息,看看jira登录时抓包的情况,我用的是谷歌F12

login.jsp接口详情如下,经试验,登录时不需要header,我们需要从响应回来的数据中取得Set-Cookie这个值,只需要JSESSIONID值,这个值与重定向后的cookie组合成一个新的cookie,后面做的操作就要使用这个新的cookie,因为登录后是重定向,需要加allow_redirects=False,禁止重定向,这样返回回来的就是302,否则就是200:

代码如下:

url = "http://XXXXXXXXXX/jira/login.jsp"

payload = {"os_username": "*******",

"os_password": "**********",

"os_cookie": True,

"os_destination": "",

"user_role": "",

"atl_token": "",

"login": "登录"}

re = requests.post(url, data=payload, allow_redirects=False)

cookieJsessionId = re.headers["Set-Cookie"].split(";")[0]

2.

重定向后的页面继续发请求,从响应的头获取Set-Cookie,只需要atlassian.xsrf.token值

代码如下:

url1 = "http://solution.xxxxxx.mobi/jira/"

re1 = requests.get(url1)

cookie1 = re1.headers["Set-Cookie"].split(";")

cookieToken = cookie1[0].replace("lout", "lin")

3. 如下是查询的接口:

可以看出这个查询接口的cookie的JSESSIONID是由login.jsp这个接口返回,atlassian.xsrf.token是由jira/这个接口返回

构造查询接口的的cookie:

cookieSearch = "jira.editor.user.mode=wysiwyg;" +cookieJsessionId + ";" + cookieToken

构造header,header里面这两个是必填项,否则会400 和404错误

header1 = {"Cookie": cookieSearch,

"X-Atlassian-Token": "no-check"

}

发送请求

url2 = "http://solution.xxxxx.mobi/jira/rest/issueNav/1/issueTable"

data1 = {

"startIndex": 0,

"jql": "project = SMPT AND resolution = Unresolved AND creator in (currentUser()) ORDER BY priority DESC, updated DESC",

"layoutKey": "list-view"

}

re = requests.post(url2, data=data1, headers=header1)

print re.text

print re.status_code

以上亲测有效,只是简单写了个线性脚本,后面需要重新封装

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值