我想使用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'
答案 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);