Created
July 22, 2014 00:51
-
-
Save anonymous/1c04bf2423579e9d2dcd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// These two need to be declared outside the try/catch | |
// so that they can be closed in the finally block. | |
HttpURLConnection urlConnection = null; | |
BufferedReader reader = null; | |
// Will contain the raw JSON response as a string. | |
String forecastJsonStr = null; | |
try { | |
// Construct the URL for the OpenWeatherMap query | |
// Possible parameters are available at OWM's forecast API page, at | |
// http://openweathermap.org/API#forecast | |
URL url = new URL("http://api.openweathermap.org/data/2.5/forecast/daily?q=94043&mode=json&units=metric&cnt=7"); | |
// Create the request to OpenWeatherMap, and open the connection | |
urlConnection = (HttpURLConnection) url.openConnection(); | |
urlConnection.setRequestMethod("GET"); | |
urlConnection.connect(); | |
// Read the input stream into a String | |
InputStream inputStream = urlConnection.getInputStream(); | |
StringBuffer buffer = new StringBuffer(); | |
if (inputStream == null) { | |
// Nothing to do. | |
forecastJsonStr = null; | |
} | |
reader = new BufferedReader(new InputStreamReader(inputStream)); | |
String line; | |
while ((line = reader.readLine()) != null) { | |
// Since it's JSON, adding a newline isn't necessary (it won't affect parsing) | |
// But it does make debugging a *lot* easier if you print out the completed | |
// buffer for debugging. | |
buffer.append(line + "\n"); | |
} | |
if (buffer.length() == 0) { | |
// Stream was empty. No point in parsing. | |
forecastJsonStr = null; | |
} | |
forecastJsonStr = buffer.toString(); | |
} catch (IOException e) { | |
Log.e("PlaceholderFragment", "Error ", e); | |
// If the code didn't successfully get the weather data, there's no point in attempting | |
// to parse it. | |
forecastJsonStr = null; | |
} finally{ | |
if (urlConnection != null) { | |
urlConnection.disconnect(); | |
} | |
if (reader != null) { | |
try { | |
reader.close(); | |
} catch (final IOException e) { | |
Log.e("PlaceholderFragment", "Error closing stream", e); | |
} | |
} | |
} |
I found the solution by myself... It is just because the Open Weather Map has updated their portal saying that they have made few things secure due to which you will have to generate registered API Key. I used mine and now its working fine!
But when I am trying to use the URL in the app the is still not showing any error. The App continues to work fine... Strange!
@VaibhavAWD well, it still crashes for me. Maybe you're adding it in the wrong location?
I wrote the network call using the Ion library.
Ion.with(this)
.load(baseURL.concat(api_key))
.asString()
.setCallback(new FutureCallback<String>() {
@Override
public void onCompleted(Exception e, String result) {
if(result != null) {
logResult(result);
}
}
});
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I did not received any error on my end. I then tried running the URL and found invalid API Key as follows,
{"cod":401, "message": "Invalid API key. Please see http://openweathermap.org/faq#error401 for more info."}
Please help me on this.