fuqiuyang1

正常情况下,我们想打开禅道的“组织”视图页面,是需要先在禅道的登录页面输入正确的用户名和密码点击登录,再切换到“组织”视图页面。

如果我们的python代码这样写的话,r1和r2的状态码都是200,但r2.text并不是我们想要的。这是因为,r1和r2请求相当于在2个不同的浏览器中,发出的两个请求,彼此是独立的,那么r2请求就相当于是在没有登录的情况下发出的请求。

import requests

paylod = {\'account\':\'admin\',
\'password\':\'e10adc3949ba59abbe56e057f20f883e\'}
url01 = \'http://localhost:9000/zentao/user-login.html\'
url02 = \'http://localhost:9000/zentao/company-browse.html\'
r1 = requests.get(url01,params=paylod)
r2 = requests.post(url02)
print(r1.status_code)
print(r2.status_code)
print(r2.text)

那么如何解决这个问题呢
1、我们可以创建一个session对象来存储请求的缺省值,r2.text可以取到想要的值。

import requests

s=requests.session()
paylod = {\'account\':\'admin\',\'password\':\'e10adc3949ba59abbe56e057f20f883e\'}
url01=\'http://localhost:9000/zentao/user-login-L3plbnRhby8=.html\'
url02=\'http://localhost:9000/zentao/user-create-0.html\'
r1=s.get(url01,params=paylod)
r2=s.post(url02,data=d)
print(r2.text)

2、可以直接加上auth认证,那么r2请求也可取到相应的值,而不需要登录。(用户名:admin,密码:123456)
import requests
from requests.auth import HTTPBasicAuth

url02 = \'http://39.106.90.48:9000/zentao/company-browse.html\'
r2 = requests.post(url02,auth=HTTPBasicAuth(\'admin\',\'123456\'))
print(r2.status_code)
print(r2.text)

ps:水平有限,亲测有效,如果有错误,或者理解不到位的欢迎留言指正。

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-12-16
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
  • 2021-08-26
  • 2022-12-23
  • 2022-01-23
  • 2022-12-23
相关资源
相似解决方案