How to tell the if the City is incorrect in OpenWeatherMap api and in android

2.9k views Asked by At

I am creating an app which will tell the weather condition of a city using the OpenWeatherMap.org api. In this app I let user to write a city name and the data will be fetched from the web. But what if the user entered wrong city.

For example if a user entered Lomdon instead of London.

What should I do in that case. The Api I am using is "http://api.openweathermap.org/data/2.5/weather?q="+city name

Thanks in advance for the help, I am new to android development.

1

There are 1 answers

0
Simas On BEST ANSWER

If the city is incorrect your API returns an error message. You can check it like this:

"http://api.openweathermap.org/data/2.5/weather?q=Lomdon"

    try {
        String msg = jsonObject.getString("message");
        if (msg.equalsIgnoreCase("Error: Not found city")) {
            Log.e("TAG", "City not found");
        } else {
            // Use the data
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

The reason I didn't use cod which looks like the return code, is that if the city is found cod is an int and if it's not found it's a string. Kind of misleading to design the JSON like that.