Volley请求不在本课程中工作,我使用不正确吗?

时间:2016-10-31 15:32:33

标签: java android http android-volley

以下是我处理http请求的类。我在新的Android项目中尝试了Volley Request而没有其他代码,请求得到了正确处理,我收到了我期望的结果。但出于某种原因,当我在我的工作项目中将此代码用作类时,它不会返回任何响应。

我调用请求的方式是:

    HttpRequest request = new HttpRequest();
    String url = "some-url";
    String urlReturn = request.getFromURL(url, <ACTIVITY>.this);

其中<ACTIVITY>是我调用请求的活动,而"some-url"是一个返回数据字符串的网址。

public class HttpRequest {

String response_test = "";

        public String getFromURL (String url, Context context) {
            RequestQueue requestQueue = Volley.newRequestQueue(context);
            // Request a string response from the provided URL.
            StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            Log.e("response1", response);
                            response_test = "1";
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            error.printStackTrace();
                            Log.d("log2=", error.toString());
                            //requestQueue.stop();
                        }
                    });
            // Add the request to the RequestQueue.
            requestQueue.add(stringRequest);
            requestQueue.start();

            return response_test;

        }

response_test永远不会更改,因此永远不会调用onResponse。我认为可能存在计时问题,但是当我为其添加循环以等待response_test更改时,它会永远等待。知道可能是什么问题吗?在我如何称呼这门课程时,我可能忽略了什么?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

Volley是异步库。它可以在另一个线程上工作,当调用准备就绪时,它会执行onResponse中的代码。在这个例子中,你是在幻想地回归。检查logcat以查找它们应该存在的消息