在實現之前,需要在pychram安裝requests庫:pip install requests
特別說明:post方法的參數
"""
post參數:
data參數:字典類型,默認content-type為application/x-www-from-urlencode
json參數:字典類型,默認content-type為application/json格式
其他的content-type都可以使用data參數,但是data參數類型就不是字典了
"""
一、session鑒權
requests庫支持session鑒權,request中有一個session類,session類會自動帶上cookie,所以在session鑒權中,無需手動在請求頭中添加cookie
代碼實現:課堂派舊版本(session鑒權方式)
import requests import json session=requests.Session()#實例化一個會話對象 url='https://v4.ketangpai.com/UserApi/login' #data為請求參數,舊版本的課堂派Content-Type:application/x-www-from-urlencode,表單類型 data={ 'email':'13550457423', 'password':'zx001204', 'remember':'0' } resp=session.post(url,data=data)#返回一個response對象 print(resp.json())#輸出響應json
(以上json是經過輸出美化了的)美化代碼如下:
a=resp.text j = json.loads(a)#json.loads()用於將str類型的數據轉成dict。 json_dicts = json.dumps(j,indent=4,ensure_ascii=False) print(json_dicts)
""" 登錄成功后,由於session會自動帶上cookie,所以無需加上cookie """ """ 訪問isvip接口,判斷登錄用戶是否為vip 這是一個get方法,沒有參數 """ isvip_url='https://v4.ketangpai.com/VipApi/isVip' resp_isvip=session.get(isvip_url) print(resp_isvip.json())
二、token鑒權
token鑒權不會自動帶上token值,所以需要我們手動獲取token
代碼實現:課堂派新版
import requests #登錄,拿到token。 url='https://openapiv5.ketangpai.com//UserApi/login' data={ "email":"13550457423", "password":"zx001204", "remember":"0", "code":"", "mobile":"", "type":"login", "reqtimestamp":1648015981746 } resp=requests.post(url,json=data)#這里是post方法,請求體為json resp_dict=resp.json() print(resp_dict) token=resp_dict['data']['token']#拿到token print(token)
""" 拿到token后,調用getUserBasinInfo接口 getUserBasinInfo為post方法 """ getUserBasinInfo_url='https://openapiv5.ketangpai.com//UserApi/getUserBasinInfo' getUserBasinInfo_data={"reqtimestamp":1648015982590}#請求體 getUserBasinInfo_header={'token':token}#需要加到請求頭的數據 getUserBasinInfo_resp=requests.post(getUserBasinInfo_url,json=getUserBasinInfo_data,headers=getUserBasinInfo_header) print(getUserBasinInfo_resp.json())