Проблема в получении массива JSON с помощью Retrofit2 из URL? - PullRequest
0 голосов
/ 25 мая 2019

Попытка извлечения данных массива json с помощью дооснащения 2, но она застряла. Это URL для извлечения данных.

https://xenzet.com/GameCheat/viewgamesjson.php

Это способ получить все игры

 public void fetch_information() {

        ApiInterface = ApiClient.getApiClient().create(Api.class);

        Call<List<Games>> call = ApiInterface.GetGames();


        call.enqueue(new Callback<List<Games>>() {
            @Override
            public void onResponse(Call<List<Games>> call, Response<List<Games>> response) {
                gameslist = new ArrayList<Games>();
                gameslist = response.body();


                int gamescounter = gameslist.size();

            }


            @Override
            public void onFailure(Call<List<Games>> call, Throwable t) {
                Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

    }

Это интерфейс для Api

public interface Api {

    @GET("GameCheat/viewgamesjson.php")
    Call<List<Games>> GetGames();
}

Это ApiClient

public class ApiClient {

    public static  String Base_URL ;

    public static Retrofit retrofit;

    public static Retrofit getApiClient()
    {
        if (retrofit == null)
        {
            Base_URL ="https://xenzet.com/";
            retrofit = new Retrofit.Builder().baseUrl(Base_URL)
                    .addConverterFactory(GsonConverterFactory.create()).build();

        }
        return retrofit;
    }
}

но я не смог получить список игр (данных) с URL.

проблема, которую я получаю, связана с URL, мне дали этот URL, поэтому я не знаю, как разделить базовый URL и что передать в @Get ("").

из-за этих проблем я попробовал другой способ выполнить это.

вместо модернизации я пытался читать с URL

 private static String readUrl(String urlString) throws Exception {
        BufferedReader reader = null;
        try {
            URL url = new URL(urlString);
            reader = new BufferedReader(new InputStreamReader(url.openStream()));
            StringBuffer buffer = new StringBuffer();
            int read;
            char[] chars = new char[1024];
            while ((read = reader.read(chars)) != -1)
                buffer.append(chars, 0, read);

            return buffer.toString();
        } finally {
            if (reader != null)
                reader.close();
        }
    }

и в методе onCreate

  try {
          String url =  readUrl("https://xenzet.com/GameCheat/viewgamesjson.php");
            Gson gson = new Gson();
            Games mgames = gson.fromJson(url, Games.class);
        } catch (Exception e) {
            e.printStackTrace();
             Toast.makeText(getApplicationContext(), "Url not working", Toast.LENGTH_SHORT).show();

        } 

но выдает ошибку при получении исключения catch и не читает URL.

что я здесь делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...