【发布时间】:2017-09-10 19:13:55
【问题描述】:
我正在尝试使用 Python 中的 REST API 在 cherwell 中创建 RFC。我首先在 Swegger UI 中尝试过。我让它在那里工作。我能够成功创建 RFC。然后通过使用请求模块在python中遵循该Curl请求,我尝试并得到了401。我发现它为什么我得到401。这是因为在授权中我使用的是临时令牌Bearer。它只会活10分钟。如果我在 10 分钟后提出请求,我会收到 401。Bearer 是必填字段。没有它我不能提出请求。我试图传递用户名和密码而不是 Bearer,它没有用。以下是我的要求,
with open('C:\Cherwell\payload.json') as file:
Data = json.load(file)
payload = Data
header = {"Authorization":"Bearer XXXXXXXX"}
r = requests.post("https:/URL/CherwellAPI/api/V1/savebusinessobject?
api_key=XXXX-XXXX-XXXX-XXXX", auth=('user','pass'), headers = header,
data=json.dumps(payload))
print r
如果有人可以帮助以前做过这件事的人,那就太好了!请指教
感谢任何帮助!
【问题讨论】:
-
请求Session 模块将帮助您处理类似stackoverflow.com/questions/39210484/… 的标头,无需将json 保存到磁盘。典型的模式是:尝试请求,如果令牌陈旧,则捕获错误,请求获取新令牌,然后重试。或者你可以使用 Alf 之类的东西来为你处理它github.com/globocom/alf#workflow
-
感谢您的评论。我找到了解决方法。我打了另一个电话并请求令牌。使用该令牌,我可以提出创建 RFC 的请求。