0

我正在使用 Java REST 客户端库进行 OAuth1.0 身份验证来访问 xero API。这适用于 GET 请求,我能够收到预期的响应。但它不适用于 POST/PUT 请求并引发异常

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

每当使用带有 POST/PUT 的 http 时,获取所有库存数据作为响应而不推送新数据。

我已经尝试了很多找出问题所在。请建议我如何解决

提前致谢

4

1 回答 1

0

我假设您没有使用 Xero-Java SDK。它可能值得一看,因为它得到了 Xero 和社区的积极支持。

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

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

我看过以下......

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

这是 Xero Invoice 的 POST 示例 baseURL

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

于 2017-08-16T16:12:57.937 回答