The jsonObjectRequest is from this url:
https://min-api.cryptocompare.com/data/pricemulti?fsyms=BCC,BTC,DASH,ETH&tsyms=USD
Which returns this json object when you go to that url:
{"BCC":{"USD":13091},"BTC":{"USD":6783.54},"DASH":{"USD":274.53},"ETH":
{"USD":531.81}}
However jsonObjectRequest returns the response:
{"ETH":{"USD":530.83},"BCC":{"USD":13091},"DASH":{"USD":274.36},"BTC":
{"USD":6783.94}}
Code:
private void volleyRequest(List<String> coins) {
String url = "https://min-api.cryptocompare.com/data/pricemulti?fsyms=BCC,BTC,DASH,ETH";
String currency = "&tsyms=USD";
url += currency;
Log.i("URL2", url);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i("Response", response.toString());
try {
JSONArray keys = response.names();
for (int i = 0; i < keys.length(); i++) {
String key = keys.getString(i);
Double value = response.getJSONObject(key).getDouble("USD");
mCoins.add(new Coin(key, value));
}
mAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
mCoins.clear();
MySingleton.getInstance(getContext()).addToRequestQueue(jsonObjectRequest);
}
Logs:
URL before JSON Object Request
I/URL2: https://min-api.cryptocompare.com/data/pricemulti?fsyms=BCC,BTC,DASH,ETH&tsyms=USD
JSONObject response
I/Response: {"ETH":{"USD":530.83},"BCC":{"USD":13091},"DASH":{"USD":274.36},"BTC":{"USD":6783.94}}
This only happens on older versions of android. Problem does not occur for API 25 occurs at API 19.
Why is this happening and how to solve this?