0

Я использую XmlPullParser для анализа информации о погоде из API. В моем приложении отображается информация о погоде, когда пользователь вошел в его город (ввод). Если я ввешу «Лондон» в текстовое поле, мое приложение отправится в this и выберет температуру, влажность и т. Д. Из xml (на данный момент все работает так, как ожидалось). Но когда я вхожу в «Londonsd», мое приложение зависает.Как узнать, является ли город неправильным в Android openweatherMap API?

Сообщение, которое я получаю с сервера при вводе неправильного города, это «{« сообщение »:« Ошибка: не найден город »,« треска »:« 404 »}».

+0

просто проанализируйте ответ с сервера и примените условия для предоставления сообщения пользователю. В приведенном выше случае, если вы получаете сообщение выше, проверьте пару значений для ключевого «сообщения». Если значение имеет значение «Ошибка» Не найден город », используйте TextView или что-то в своем макете, чтобы показать, что город не найден. –

+1

Спасибо @Sujit Я использовал ту же идею, что и ваша. – DaX

ответ

1

Вы получаете два типа ответов данных в случае успеха, получите xml, а в случае неудачи, чтобы получить json, сделать их идентичными в первую очередь. Я предлагаю использовать json, изменив mode=jsonhttp://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=metric.

После этого вы можете поставить чек на cod, если есть 404, тогда город недействителен.

или

Вы можете попробовать response.contains("\"cod\":\"404\""); или response.contains("Not found city"); для проверки ошибок. но не идеальное решение.

+0

благодарит вас за ответ @Ahmad Nawaz. не хочу менять его на json, потому что мне нужно снова переписать код. – DaX

+0

Тогда вы можете попробовать 'response.contains (" \ "cod \": \ "404 \" ");' или 'response.contains («Не найденный город»), 'для проверки ошибки, но не для идеального решения. –

+0

Хорошая идея, спасибо @Ahmad Nawaz – DaX