1

因此,我生成的 URL 与我们从 withings 开发者网站获得的 URL 相同。
但是我得到 {“status”:342}。
我正在使用 java 并在下面使用 oauth nonce、时间戳和 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=000000-3b5f9e4704d270551e69b45db31de4ec88b4ebe03&oauth_version=1.0
4

1 回答 1

3

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

于 2014-11-19T04:53:27.547 回答