方案一,原生态cookie,如果后续接口不需要再增加其他参数认证,就直接使用这个cookie
import requests def login(inData): url = "http://120.55.190.222/api/mgr/loginReq" payload=inData reps=requests.post(url,data=payload) #print(reps.cookies) return reps.cookies cookie1=login({'username':'auto','password':'sdfsdfsdf'}) #print(cookie1) #其他接口请求不需要再增加参数认证,直接传入cookie1 resp2=requests.post('路径',cookie1)
方案二,如果后续的接口使用这个cookie,需再增加其他参数认证重新封装cookie
import requests def login(inData): url1 = "http://120.55.190.222/api/mgr/loginReq" payload=inData reps=requests.post(url1,data=payload) #print(reps.cookies['sessionid']) return reps.cookies['sessionid'] #返回sessionid值 #取出seeionid值 session_id = login({'username':'auto','password':'sdfsdfsdf'}) #重新封装cookie,传入再增加认证的token user_cookie = {"sessionid":session_id,'token':'hsdksjkdsk'} #其他接口请求调用时,传入封装好的user_cookie resp2 = requests.post('路径',cookies=user_cookie)
如:新增课程接口,需要用到sessionid才能发起请求
#新增课程接口,使用方案二 import requests import json def login(inData): url1 = "http://120.55.190.222/api/mgr/loginReq" payload=inData reps=requests.post(url1,data=payload) return reps.cookies['sessionid'] #返回sessionid值 def add_lesson(inBody,cookie): url="http://120.55.190.222:7080/api/mgr/sq_mgr/" payload={ 'action':'add_course', 'data':inBody #这里要求json格式,如'''{"name":"tom"}''' } reps = requests.post(url,data=payload,cookies=cookie) reps.encoding = 'unicode_escape' #响应编码 return reps.json() if __name__ == '__main__': session_id = login({'username':'auto','password':'sdfsdfsdf'})#取出seeionid值 user_cookie = {"sessionid":session_id}#重新封装cookie data={ "name":"初中化学1", "desc":"初中化学课程1", "display_idx":"5" } #新增课程接口请求调用#data数据接口要求是json格式,用json.dumps()转为json格式 print(add_lesson(json.dumps(data),cookie=user_cookie))