Технически макрос получает данные (XML) с сервера Redmine. XML хранится в классе ByteArray.
Хранение в ByteArray позволяет на некоторое время кэшировать ответ сервера Redmine.
Для анализа он был обернут ByteArray Трансляция:
Код: Выделить всё
public InputStream httpGetAsInputStream(String url) throws IOException {
byte[] result = httpGetAsString(url).getBytes(UTF_8);
return new ByteArrayInputStream(result);
}
private static void parse_xml(InputStream in, TicketState t) throws Exception {
try {
// ---> THIS FAILS on IPhone only
XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(in);
...
} ...
}
Код: Выделить всё
try {
InputStream strm = ....httpGetAsInputStream(tmpurl);
parse_xml(strm, t);
strm.close();
}
Что меня действительно смущает, так это то, что веб-браузер работает так, как ожидалось, но приложение для iPhone выдает исключение: Поставщик для класса javax.xml.stream.XMLInputFactory не может быть создан.
Ну, это серверная часть… не должно быть никакой разницы между приложением для iPhone и браузером.
Подробнее здесь: https://stackoverflow.com/questions/781 ... on-browser
Мобильная версия