試圖生成Azure SAS令牌以便能夠使用Service Bus REST Api。在Android上生成Azure SAS令牌
發現這個鏈接:
http://blog.simontimms.com/2015/01/30/sending-message-to-azure-service-bus-using-rest/
如何實現Android上的一樣嗎?
我現在的嘗試是這樣的:
private String generateSasToken(String uri, String keyName, String key){
String ret = "";
long tokenExpirationTime = (System.currentTimeMillis()/1000) + (10 * 365 * 24 * 60 * 60);
try {
String stringToSign = new URL(uri).toString() + "\n" + tokenExpirationTime;
SecretKey secretKey = null;
byte[] keyBytes = key.getBytes("UTF-8");
Mac mac = Mac.getInstance("HMACSHA256");
secretKey = new SecretKeySpec(keyBytes, mac.getAlgorithm());
mac.init(secretKey);
String signature = Base64.encodeToString(mac.doFinal(stringToSign.getBytes("UTF-8")), Base64.DEFAULT);
ret = String.format("SharedAccessSignature sr=%s&sig=%s&se=%s&skn=%s",
URLEncoder.encode(uri),
URLEncoder.encode(signature),
String.valueOf(tokenExpirationTime),
keyName);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return ret;
}
我得到以下使用郵差呼叫服務總線的REST API後:
401 40103:授權令牌無效簽名 時間261毫秒
向上日期:發現這個鏈接
https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/
根據第6的代碼爲Android
什麼意思是「xxxxxxx」作爲參數,我應該在那裏使用什麼值? device_send_listen是設備資源管理器添加的設備的名稱?我的連接設備是CC3200 ti launchpad,我想確保我做的一切正常。 – Adela