When the URL is ran manually in browser, this JSON is returned.
{
"error": false,
"0": {
"question": "Using the information that 6.7 × 52 = 348.4, Find the value of: 6.7 × 520",
"useranswer": "3484",
"correctanswer": "3484",
"correct": "1"
},
"1": {
"question": "Jane drives 50mph. London is 350 miles away. How long will it take?",
"useranswer": "5",
"correctanswer": "7",
"correct": "0"
},
"2": {
"question": "74*3?",
"useranswer": "222",
"correctanswer": "222",
"correct": "1"
},
"3": {
"question": "39+31?",
"useranswer": "70",
"correctanswer": "70",
"correct": "1"
}
}
The code is as follows:
public List<String> GetTestResultsFromUserID(Integer userID){
BufferedReader bufferedReader = null;
try {
URL url = new URL(AppConfig.Results_URL + "?userid=" + userID);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty ("Authorization", "Basic Z2FycmV0dGg6ZnJBc3Rpbmc0");
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String result;
result = bufferedReader.readLine();
return ProcessResultSetFromDatabase(result);
}catch(Exception e){
Log.d("Exception in try", "Exception" + e.toString());
return null;
}
}
And then the result
is processed here:
private List<String> ProcessResultSetFromDatabase(String result){
List<String> resultSet = new ArrayList<String>();
try{
JSONObject jObj = new JSONObject(result);
boolean error = jObj.getBoolean("error");
if (!error){
for (int i=0; i<48; i++){
JSONObject rSet = jObj.getJSONObject(Integer.toString(i));
resultSet.add("Q: "+rSet.getString("question")+" Correct Ans: "+rSet.getString("correctanswer")+" Given Ans: "+rSet.getString("useranswer")+" Correct:"+(rSet.getString("correct")));
}
}else{
resultSet.add("No results at the moment");
}
}catch(JSONException e){
e.printStackTrace();
}
return resultSet;
}
Note: The result passed to ProcessResultSetFromDatabase
seems to be null when passed.