从URL使用Retrofit2获取数组json的问题?

时间:2019-05-25 09:46:02

标签: java json url retrofit2

尝试使用翻新2检索json数组数据,但被卡住,这是用于检索数据的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时会出错。

我在这里做什么?

0 个答案:

没有答案