#/bin/python
#-*- coding: utf-8 -*-import requestsfromurllib import parseclass HarborAapi(object):
def __init__(self,url,username,passwd):'''@Author: xiajinqi
:param url:
:param username:
:param passwd:''' print("构造函数")
self.url=url
self.username=username
self.passwd=passwd
self.session_id_key= "sid"def login_get_session(self):
print("获取session")
header={'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36','Content-Type': 'application/x-www-form-urlencoded'}
req_url='%s/c/login'%(self.url)
req_dict={'principal': self.username,'password': self.passwd
}
req_data=parse.urlencode(req_dict)try:
s=requests.Session() ###通过session方式请求。会自动保留cookie信息
res= s.post(req_url, headers=header, data=req_data)
print(res.text)if res.status_code==200 : ### 200位数字不可加" self.session=s
# self.session_id= res.cookies.get("sid")
print(s)returns #####s中存在cookie植
except :
raise Exception("login error,please check your account info!")
def get_projects(self):
print("获取工程")
header={'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36','Content-Type': 'application/json'}
req_url = '%s/api/projects?page=1&page_size=15' %(self.url)
req_dict={'page': '1','page_size': '15'}
r= self.session.get(req_url)
print(r.text)
print(r.status_code)
### cookies={self.session_id_key: self.session_id}
def logout(self):
r=requests.get('%s/c/logout' % (self.url),cookies={'sid': self.session_id})
print(r.text)
harbor=HarborAapi('https:/******','test','1234')
harbor.login_get_session()
harbor.get_projects()
### 返回session对象