Volley JSONObjectRequest什么都不返回

时间:2017-04-28 17:09:20

标签: android json android-studio android-volley

我想使用Volley从某个网站获取JSON响应,所以我开始测试它。这是我的代码简单明了:

    JsonObjectRequest jsObjRequest = new JsonObjectRequest
            (Request.Method.GET, "http://api.androidhive.info/volley/person_object.json", null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    json = response;
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO Auto-generated method stub
                    error.printStackTrace();
                }
            });

    int x = json.length();

请求发出后,响应始终为null。请求成功时都不会引发错误。这真令人困惑。如您所见,我将响应的值分配给名为json的变量,该变量属于同一类型。当我通过在onResponse方法,onErrorResponse方法和最后一行上放置断点来调试应用程序时,调试器只会触及变量监视指示响应值为空的最后一行。

我尝试了多个网址

http://simplifiedcoding.16mb.com/UserRegistration/json.php
https://androidtutorialpoint.com/api/volleyString

我已经通过gradle添加了Volley

 compile 'com.android.volley:volley:1.0.0'

2 个答案:

答案 0 :(得分:1)

将其放入RequestQueue

RequestQueue queue = Volley.newRequestQueue(this);

然后

queue.add(jsObjRequest);

或者

ApplicationController.getInstance().addToRequestQueue(jsObjRequest);

答案 1 :(得分:0)

您需要将请求添加到队列以使异步请求起作用。

RequestQueue requestQueue = Volley.newRequestQueue(this) requestQueue.add(jsObjRequest);