在我们做查询或提交的时候需要先登录,获取到cookie 或token才能做下一步操作,本次针对登录后获取两个token值作为参数传入下一个操作(查询)的说明,如下:

1、先创建登录login.py文件,代码如下:

#_*_coding=utf-8
import requests
import json

def get_token():
  url = 'http://XXXXXXXXX:8070/api/gv-crcs/userAuth/login'
  header = {
    "Accept": "application/json, text/plain, */*",
    "Content-Type": "application/json",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"
    }
  data = {"account": "guest_Pai_shz","password": "PW_Pai_shz"}
  res = requests.post(url=url, headers=header, data=json.dumps(data))
  tt = json.loads(res.text)
  refreshToken = str(tt["data"]["refreshToken"])
  accessToken = str(tt["data"]["accessToken"])
  return refreshToken,accessToken
print get_token()

 运行后,返回两个token是一个元组,如果获取索引值用下标 0开始。

(u'eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE2MzMyNDYjkuZpwGRrTmfM10mNt_kikT89jGO8a9dMlWIaCA', u'eyJhbGciOiJIUzUxMiJ9.eyJhY2N1cGRhdGVUaW3Mz9GACzUL0b2XpMVRdU0bEG01-HO3Jb4nrpvcllRyuCU8AKFFvOKjz6hg')

2、创建查询query.py文件,然后把login.py引入,代码如下:

#_*_coding=utf-8
import requests #引入库
import login
import json
url = 'http://XXXXXX:8070/api/gv-crcs/deviceInfo/page/info?current=1&size=10&runWorkStatus=-2&pole=&mac=test&groupIdStr=&startTime=&endTime='
header={
  "Accept":"application/json, text/plain, */*",
  "Content-Type":"application/json",
  "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36",
  "refreshToken":login.get_token()[0],     #由于该函数返回的是元组,所以获取第一个token值就要取第一个值,其索引为 0;
  "accessToken":login.get_token()[1]    #由于该函数返回的是元组,所以获取第二个token值就要取第一个值,其索引为 1;
  }
res = requests.get(url=url,headers=header)
print res.content

 运行后,查询返回结果是:

{"code":200,"message":"操作成功","data":{"records":[{"createTime":null,"updateTime":null,"id":4209,"serialNum":123,"deviceAlarmStatus_text":"正常"}],"total":1,"size":10,"current":1,"searchCount":true,"pages":1}}

 

 -----END------

posted on 2021-09-26 16:30  给天使看的戲  阅读(813)  评论(0编辑  收藏  举报