我正在尝试从upwork的api获取一些数据。 我使用的是Requests-OAuthlib,对于一个API请求它可以工作,但是对于第二个API请求,我得到了这样的错误:“重复的时间戳/nonce组合,可能是重播攻击。请求被拒绝。“ 因此,我试图修改请求OAuthlib,并手动更改时间戳和nonce,方法是将此放入构造函数中:
ur = u''+str(SystemRandom().random())
ur = ur.replace("0.","")
self.client.nonce = ur
ts = u'' + str(int(time()))
self.client.timestamp = ts
就在那之后自助式客户机=客户端类(。。。 但它仍然不起作用。 我是python和OAuth的初学者,所以我宁愿使用这个库,而不是手动构建请求url。在
这是库的源代码Requests-OAuthlib source code
如果我在调用结束时打印它们,它们的值与我设置的值相同,但设置它们似乎没有效果,upwork仍然表示重播攻击。 我也试着把它们放在头上,还是没用
^{pr2}$更新: 我打印了r.headers,它包含以下内容:
第一次通话
oauth_nonce="55156586115444478931487605669", oauth_timestamp="1487605669"
第二次通话
oauth_nonce="117844793977954758411487605670", oauth_timestamp="1487605670"
nonce和timestamp彼此不同。那么为什么upwork给我的答案是:“重复的时间戳/nonce组合,可能是重播攻击。请求被拒绝。”?在
更新2:可能这只是一些疯狂的上升行为,还在等待他们的答复。我相信这是因为如果我在端点中改变了一些东西,它是有效的,所以nonce/timestamp似乎与问题无关。在
更新3:我从upwork得到了答案。因为我不能理解答案,但如果你认为有道理,你可以结束这个问题。反正我找到了一个解决办法。 https://community.upwork.com/t5/API-Questions-Answers/Wrong-API-error-message/td-p/306489
目前没有回答
相关问题 更多 >
编程相关推荐