2017-08-16 285 views
0

我正在使用java rest客户端lib进行OAuth1.0身份验证以访问xero API。这与GET请求正常工作,我能够收到预期的回应。但它不能与POST/PUT请求工作,并抛出异常Xero POST/PUT请求signature_invalid错误

oauth_problem=signature_invalid&oauth_problem_advice=Failed%20to%20validate%20signature 

每当使用HTTP POST与/ PUT,获得在不推新数据响应所有库存数据虽然。

我已经尝试了很多发现有什么问题。请建议我我如何解决它

由于提前

回答

0

我假设你没有使用飒乐的Java SDK。它可能值得一看,因为它正在得到Xero和社区的积极支持。

https://github.com/XeroAPI/Xero-Java

要获得关于无效签名的问题。我发现如果您可以成功执行GET,但在POST/PUT上收到无效签名。你应该检查你正在签名的baseURL。

我看到下面....

不正确使用的动词(GET,PUT,POST) 查询参数不包括 ResourceURI不包括

这里为POST的样品基本URL一个Xero的发票

POST & HTTPS%3A%2F%2Fapi.xero.com%2Fapi.xro%2F2.0%2FInvoices%2F96df0dff-43ec-4899-a7d9-e9d63ef12b19 & oauth_consumer_key%3D7OSJAWXXXXXXXXXXXDKLHOTHHHSFY%26oauth_nonce%3DA9DCD74418E6669C96A0A734154A9A2BABD42F13%26oau th_timestamp%3D1502899808%26oauth_token%3DK480GXXXXXXXXXXQUVO2SJ402I%26oauth_version%3D1.0

+0

我不使用Xero的-Java库BCZ我只是这样做的Android。我可以要求更多帮助吗?其实在URL编码得到无效的网址错误 – Dilip

+0

意外的网址:https%3A%2F%2Fapi.xero.com%2Fapi.xro%2F2.0%2F /项目 – Dilip

+0

我已经使用谷歌图书馆oAuth1.0我已经debuged代码和生成签名的方式相同。但它不适用于发布请求 – Dilip