Android OAuth生成签名
我正在尝试为OAuth请求生成签名。我是这样做的:Android OAuth生成签名,android,hash,oauth,signature,Android,Hash,Oauth,Signature,我正在尝试为OAuth请求生成签名。我是这样做的: String toHash = URLEncoder.encode("POST&https://" + url + "&oauth_callback=oob&oauth_consumer_key=" + key + "&oauth_signature_method=HMAC-SHA1&oauth_timestamp=" + timeStamp + "&oauth_nonce=" + timeSta
String toHash = URLEncoder.encode("POST&https://" + url + "&oauth_callback=oob&oauth_consumer_key=" + key + "&oauth_signature_method=HMAC-SHA1&oauth_timestamp=" + timeStamp + "&oauth_nonce=" + timeStamp);
String hash = computeHmac(toHash, secret);
public String computeHmac(String baseString, String key)
{
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secret = new SecretKeySpec(key.getBytes(), mac.getAlgorithm());
mac.init(secret);
byte[] digest = mac.doFinal(baseString.getBytes());
return new String(Base64.encodeBase64(digest));
}
但是服务器告诉我签名是错误的。我做错了什么?Pease help…根据OAuth规范: 签名基字符串是通过连接在一起构造的, 依次为以下HTTP请求元素:
https:// -> https%3A%2F%2F
oauth_callback=oob -> oauth_callback%3Doob
...
有关字符串构造的所有详细信息都在这里:感谢您的帮助。internetz上的组合指令对于什么被规范化,什么被编码,以及以什么顺序,仍然不清楚。例如;为什么有些“&”字符是编码的而有些不是。。。哦,我会向你吐出我最后的一口气。。。