我有一個帶有WSSE身份驗證的Web服務。 Web服務是用Symfony2編寫的,我可以通過PHP客戶端訪問它,也可以通過名爲REST Console的chrome插件訪問它,因此它可以工作。爲了手動生成頭文件,我使用了this wsse generator。Android中的WSSE時間戳生成
爲了使Android客戶端,我遵循此tutorial,它的工作原理,但只有當它不生成時間戳。
其產生的時間戳的代碼是:
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
...
private String generateTimestamp() {
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdf.format(new Date());
}
它返回它是正確的,格式和一切看起來很完美,但它告訴「未授權」的字符串,但是當我直接寫戳它的工作原理像這樣:
private String generateTimestamp() {
return "2014-03-25T09:00:26Z";
}
我已經檢查了編碼,試圖對其進行編碼,如UTF-8和CP-1252(文件編碼):
private String generateTimestamp() {
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String hora = sdf.format(new Date());
String correctString = "fail";
try {
correctString = new String(hora.getBytes(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
correctString.hashCode();
//String buena = "2014-03-25T08:10:59Z";
return correctString ;
}
我使用Calendar.YEAR + Calendar.MONTH ....生成了時間戳,但仍然無效。
目前我正試圖在真實手機上測試它,但我不認爲這是一個模擬器問題。
你有什麼建議嗎?非常感謝您提前!