Android: обнаружение типов данных XML или JSON базового HttpResponse после ВВОДА / вывода

#android #xml #json

#Android #xml #json

Вопрос:

Мне нужно проанализировать ответ сервера из моего http post amp; puts. Изначально я думал, что все ответы будут XML. Теперь я выясняю, что для определенных вызовов ответ, который я получаю, — это JSON. У меня нет контроля над сервером, поэтому изменение этого не вариант.

Итак, мне нужно решить, как наилучшим образом определить тип данных, возвращаемый с сервера. Моей первой мыслью было бы попытаться проанализировать ответ как JSON. Если генерируется исключение JSONException, предположим, что это XML.

Поскольку у меня нет контроля над сервером, я не уверен, что могу рассчитывать на правильность заголовков.

У кого-нибудь есть какие-либо мысли о наилучшем подходе?

Комментарии:

1. Если вы настроены на использование синтаксического анализатора JSON, включенного в Android, вам все равно придется вызывать EntityUtils#toString(Entity) или что-то подобное, поэтому достаточно просто отбросить все, что возвращает #toString(Entity), в новый JSONObject(String) и попробовать XML, если синтаксический анализ ответа завершается неудачно.

2. JSON всегда начинается с ‘{‘, а XML с ‘<‘?

3. и, возможно, некоторые пробелы в зависимости от того, насколько ненадежен сервер, производящий вывод.

Ответ №1:

Просто посмотрите на заголовок content-type в ответе html. Если сервер работает правильно, это должно указывать на желаемый тип контента, который вы получаете.

Комментарии:

1. Избиратель, не хотите прокомментировать? Чего мне здесь не хватает? Что-то не так с моим ответом?

Ответ №2:

Как я уже указывал в своем вопросе, я не имел никакого контроля над сервером и не мог рассчитывать на его правильную настройку и / или передачу соответствующих заголовков. В противном случае это был бы очевидный ответ.

Моя первоначальная идея — это то, что в итоге сработало лучше всего:

«Моей первой мыслью было бы попытаться проанализировать ответ как JSON. Если генерируется исключение JSONException, предположим, что это XML. »