У меня есть веб-сервис с аутентификацией WSSE. Веб-сервис написан на Symfony2, и я могу получить к нему доступ через PHP-клиент, а также с плагином для chrome, называемым REST Console, поэтому он работает. Для генерации заголовков вручную я использовал this wsse generator.Генерация временной метки WSSE в Android
Чтобы сделать клиент 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 и СР-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 .... но все равно не работает.
На данный момент я пытаюсь протестировать его в реальном телефоне, но я не думаю, что это проблема эмулятора.
Есть ли у вас какие-либо предложения? Заранее большое спасибо!