python-3.x - 如何通过 get 应用不记名令牌?
问题描述
我正在尝试访问需要不记名令牌的 API。我能够获得不记名令牌,但我不明白接下来的步骤。标头中需要令牌,但 get 只接受 2 个参数,这将是我的 url 和参数?
我一直在尝试模仿公司的 javascript 示例。https://imgur.com/A7RhWo9 https://portal.trafnet.com/rest/home/JavascriptExample https://portal.trafnet.com/rest
#Urls
tokenurl = 'https://portal.trafnet.com/rest/token'
#Creds
user='test@test.com'
password='test'
#Fetch Bearer Token
tokenfetch = requests.post(tokenurl, data = {'grant_type':'password', 'username':user, 'password':password})
tokenval = tokenfetch.json()
mytoken = tokenval['access_token']
在这条线下面我显然不明白。
#DataParms
datefrom = '2019-09-01'
dateto = '2019-09-01'
sitecode = '01'
includeinternaloc = 'true'
datasummedbyday = 'false'
header = {'Authorization: Bearer %s' %mytoken}
params = {'SiteCode':sitecode, 'DateFrom':datefrom, 'DateTo':dateto,'IncludeInternalLocations':includeinternaloc, 'DataSummedByDay':datasummedbyday}
response = requests.post(dataurl,params,header)
print(response)
print(response.json())
{'Message':“未找到与请求 URI ' https://portal.trafnet.com/rest/api/traffic '匹配的 HTTP 资源。”}
解决方案
如果我正确理解了问题,那么您从发布请求中获得了不记名令牌,并且必须在标头中的下一个 GET API 调用中使用相同的令牌。要传递标头,请使用标头作为 requests.get 方法的关键字参数
带有不记名令牌的标头示例: {'Authorization': 'Bearer <access_token>' }
requests.get(dataurl, params=params, headers=header)
推荐阅读
- java - iOS 上 .rsaEncryptionOAEPSHA256 算法与 Java 的兼容性
- linux - 有没有办法在gdb核心转储中获取线程的开始时间
- android - Android - 在特定时间运行功能
- scala - 在集成测试中使用 akka ActorContext
- javascript - Javascript - 正则表达式从标题中删除特殊字符
- javascript - 将 tweetnacl.js 与 TweetNaclFast (java) 混合用于非对称加密
- python - 使用 pandas 为所有字符串对创建距离矩阵
- php - 将我的所有网页都设为 .PHP 页面是不好的做法吗?
- r - R - for循环错误:“'}'中的意外'}'”
- bash - 在shell脚本中获取3个数组中的公共元素