如何使用Volley在Java中向JSON发出带有参数的GET请求?

时间:2019-01-02 12:44:01

标签: java json android-volley

我正在做一个学校项目,我需要解析JSON并进行查询以获取特定值。有问题的API是这个http://data.nba.net/10s/prod/v2/2018/teams.json,我只想要“标准”数组的团队。

例如,我只想要NBA系列球队,我尝试了以下方法:

private void loadTeams() {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(application);

    String franchise = preferences.getString("isnbafranchise", "true");

    Uri baseUri = Uri.parse(NBA_REQUEST_URL);
    Uri.Builder uriBuilder = baseUri.buildUpon();

    uriBuilder.appendQueryParameter("isnbafranchise", franchise);

    RequestQueue requestQueue = Volley.newRequestQueue(application);
    StringRequest request = new StringRequest(Request.Method.GET, uriBuilder.toString(), new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            List<NBATeam> teamList = QueryUtils.extractFeatureFromJson(response);
            teams.setValue(teamList);

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Error Volley", error.toString());
        }
    });
    requestQueue.add(request);
}

但与没有appendQueryParameter的情况相同,返回所有taam。我也尝试过从Mozilla(http://data.nba.net/10s/prod/v2/2018/teams.json?isnbafranchise=true)发出GET请求,并得到相同的结果,这使我认为我没有正确执行查询。

0 个答案:

没有答案