Android: Volley возвращает нулевые данные, поступающие из источника, но не, если данные поступают из My json .com - PullRequest
0 голосов
/ 21 марта 2020

То, что я хочу получить, это объект JSON из API Национального парка, но когда я делаю это, он просто возвращает ноль, поэтому я перехожу к My json и копирую и вставляю объект, от которого я предполагаю получить веб-сайт. Таким образом, второй URL-адрес от моего json. Бин go !, без ошибок отлично работает, я получил данные. Очевидно, не может сделать это, потому что данные изменяются. Есть ли какая-то аутентификация, которую я должен сделать, чтобы получить данные или что-то в этом роде?

public void JsonParse(){

    RequestQueue requestQueue = Volley.newRequestQueue(this);

    String url_from_Nationial_Park_Service_API = "https://developer.nps.gov/api/v1/campgrounds?/&api_key=Aa4Yrekf9m2MhKbcb1J8Bzzyx6SVNRBAtJlpFdLr";
    String url_from_MyJson = "https://api.myjson.com/bins/1321fc";


    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url_from_MyJson, null ,
           new Response.Listener<JSONObject>() {
               @Override
               public void onResponse(JSONObject response) {
                   // testing if data is recieved
                   try {
                       Log.d(TAG, "onResponse: Starting");
                       JSONArray jsonArray = response.getJSONArray("data");
                       Log.d(TAG, "onResponse: Got Data");
                       JSONObject campsite = jsonArray.getJSONObject(0);
                       Log.d(TAG, "onResponse: Got Object");
                       JSONObject information = campsite.getJSONObject("contacts");
                       Log.d(TAG, "onResponse: Got Contacts");
                       JSONArray contact = information.getJSONArray("phoneNumbers");
                       Log.d(TAG, "onResponse: Go Phone numbers");
                       JSONObject options = contact.getJSONObject(0);
                       Log.d(TAG, "onResponse: Final");
                       String Number = options.getString("phoneNumber");

                       // IF TEST goes right, then some data goes to my button
                       oFragmentHome.betabutton(Number);

                   } catch (JSONException e) {
                       e.printStackTrace();
                       Log.d(TAG, "onResponse: Exception");
                   }

               }
           }, new Response.ErrorListener() {
       @Override
       public void onErrorResponse(VolleyError error) {
           Log.d(TAG, "onErrorResponse: Unsuccesful");
           Log.d(TAG, "onErrorResponse: " + error.getMessage());

       }
   });
   requestQueue.add(request);

}
...