正常情况下,我们想打开禅道的“组织”视图页面,是需要先在禅道的登录页面输入正确的用户名和密码点击登录,再切换到“组织”视图页面。
如果我们的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 requestsfrom 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:水平有限,亲测有效,如果有错误,或者理解不到位的欢迎留言指正。
原文地址:https://www.cnblogs.com/fuqiuyang1/p/11708628.html
时间: 2024-12-10 22:03:34