I'm having a little trouble with my java syntax and I'm stumped to what's wrong. The problem lies in my BufferedReader in: "finally{reader.close();}" where it's saying reader cannot be resolved, but in the "try" immediately before it, it's resolved with no problem. Here is the section of code in question. I'm simply trying to parse pulled Twitter API 1.1 JSON results into something easy to read using oAuth 2.0 authorization. I'd appreciate the input.
/////////////////////////////////////////////////////////////
// AsyncTask - Download Twitter Feed w/Token as authorization
// //////////////////////////////////////////////////////////
protected class loadTwitterFeed extends AsyncTask<Void, Void, Integer> {
@Override
protected Integer doInBackground(Void... params) {
try{
DefaultHttpClient httpclient = new DefaultHttpClient(
new BasicHttpParams());
HttpGet httpget = new HttpGet(tweeterURL);
httpget.setHeader("Authorization", "Bearer " + twitterToken);
httpget.setHeader("Content-type", "application/json");
InputStream inputStream = null;
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(inputStream, "UTF-8"), 8);
return null;
}
finally{
reader.close();
}
}
protected void onPostExecute(String result) {
StringBuilder sb = new StringBuilder();
try{
JSONObject resultObject = new JSONObject(result);
org.json.JSONArray tweetArray = resultObject.getJSONArray("results");
for (int t=0; t<tweetArray.length(); t++) {
JSONObject tweetObject = tweetArray.getJSONObject(t);
sb.append(tweetObject.getString("from_user")+": ");
sb.append(tweetObject.get("text")+"\n\n");
}
}
catch (Exception e) {
Log.e("Tweet", "Error retrieving JSON stream" + e.getMessage());
jsonFeed = sb.toString();
e.printStackTrace();
}
}
}
/* String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
} */
protected void onPostExecute(Integer result) {
// Update GUI
if (jsonFeed.length()>0){
twitterText.setText(jsonFeed.toString());
//if (jsonFeed.length() > 0) {
//twitterText.setText(jsonFeed);
} else {
//I'd assume wrong Consumer Key/Secret if this happens.
twitterText.setText("Nothing Returned");
}
}
}