java - Withings Web API 调用签名问题?

标签 java withings

所以我生成的 URL 与我们从 Withings 开发者网站获得的相同。
但是我得到了 {“status”:342}。
我正在使用 java 并在下面使用 oauth 随机数、时间戳和 oauth 签名

但是,当我用我从 Withings 网站获得的值替换这 3 个值时,它工作得很好。 我不明白我做错了什么。感谢任何帮助

  • String.valueOf(Math.random()) 随机数
  • System.currentTimeMillis()/1000L – 时间戳
  • 使用下面的SecretKeySpec生成签名

  • 获取

  • > http://wbsapi.withings.net/measure?action=getmeas&userid=2---0
  • oauth_consumer_key=00000000061e0bf7f7b109903040dc------&oauth_nonce=0.4509674797693397&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1414031787&oauth_token=00 0000-3b5f9e4704d270551e69b45db31de4ec88b4ebe03&oauth_version=1.0

最佳答案

生成 URL 时需要考虑的一件事是 URL 编码发生的时间/地点。一些很棒的工具,如 RestSharp,在生成时对字符串进行编码。如果您对 oauth_signature 进行了编码并将其作为参数添加到您的字符串中,它将再次进行编码。仔细观察您的最终字符串,以确保您没有对 oauth_signature 或其他生成的值进行双重编码。例如,编码后的 oauth_signature 中的 %3D 将在最终字符串中变为 %253D,并迅速生成 342 代码。

关于java - Withings Web API 调用签名问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26517181/

相关文章:

php - Withings API 未重定向到我的回调 URL (PHP/OAuth)

ios - Withings API - 访问 protected 资源

java - 如何解决 Withings 开发者 API 刷新 token 在 4 小时内过期的问题?

java - 为 Java 公开 MYSQL (android)

java - 使用 Camel 发送带有自定义 MIME 消息的邮件

Java HttpClient 似乎在缓存内容

java - 是否需要我的 try catch block ?

java - Hibernate View 映射