2017-07-19 67 views
0

我想通過點擊一個遠程API來獲得一個REST響應,我從本地機器獲得了一些其他服務器的響應,但只從一個特定的IP地址獲得響應X- Mashery-Error-Code,值:ERR_403_NOT_AUTHORIZED。REST響應沒有從一個特定的IP地址

我與服務提供商檢查他們沒有阻止任何IP地址。我傳遞一個Api密鑰和一個使用sha256使用共享密鑰生成的簽名,如下所示。 org.apache.commons.codec.digest.DigestUtils.sha256Hex(apiKey + sharedSecret + System.currentTimeMillis()/ 1000);

這可能是由於某個IP地址無法正常工作的原因。

任何幫助將不勝感激。

回答

0

ERR_403_NOT_AUTHORIZED在您的認證不正確時發生在Mashery上。我的意思是您的密鑰/密碼不正確,或者您的oAuth2令牌已過期,或者您的SHA256/MD5簽名不正確。

Mashery-Error-Code,Value:ERR_403_NOT_AUTHORIZED通常在IP被阻止時不會發生。

在這種情況下,我認爲問題在於您使用的是System.currentTimeMillis()/ 1000()。

取而代之的是,你可以嘗試Math.round(新java.util.Date()。的getTime()/ 1000)

org.apache.commons.codec.digest.DigestUtils.sha256Hex("apiKey" + "sharedSecret" + Math.round(new java.util.Date().getTime()/1000)) 

如果沒有工作,你可以檢查還有另一個標題X-Error-Detail-Header,如果是的話它的值是什麼?