因此,我生成的URL与从withings开发人员站点获得的URL相同。
但是我得到{“状态”: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 = 000000-3b5f9e4704d270551e69b45db31de4ec88
最佳答案
生成URL时要考虑的一件事是URL编码的时间/位置。诸如RestSharp之类的一些出色工具会在生成字符串时对其进行编码。如果您已经编码了oauth_signature并将其作为参数添加到字符串中,它将再次被编码。鹰眼您的最终字符串,以确保您不会对oauth_signature或其他生成的值进行双重编码。例如,编码后的oauth_signature中的%3D将成为最终字符串中的%253D,并迅速生成342代码。
关于java - Withings Web API调用签名问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26517181/