Android Volley 库不返回完整的响应数据

2024-03-09

Volley 库不返回完整的响应数据。它只返回响应数据的一部分。我正在调用 drupal 服务。下面是我的代码。

public void BoardRoomRequest() {
        pdialog = new ProgressDialog(BoardRoom.this);
        pdialog.setTitle("Please wait....");
        String url = Global_Application.url + "views/boardroom";
        Log.d("url========", url);
        Map<String, String> params = new HashMap<String, String>();
        StringRequest req = new StringRequest(Request.Method.GET,
                getApplicationContext(), url, params,
                new Response.Listener<String>() {

                    @Override
                    public void onResponse(String response) {
                        // TODO Auto-generated method stub
                        Log.d("Response", response);

                        pdialog.dismiss();
                    }
                }, new ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        // TODO Auto-generated method stub
                        Log.d("Error.Response", error.toString());
                        pdialog.dismiss();
                    }
                });

        queue.add(req);
        pdialog.show();
    }    

这不是 Volley! 的问题,而是 logcat 显示有限数据大小的问题(限制)。 (我假设您正在从代码中读取 logcat 中的响应)

如果你使用 eclipse 这里是解决方案

 public void BoardRoomRequest() {
            pdialog = new ProgressDialog(BoardRoom.this);
            pdialog.setTitle("Please wait....");
            String url = Global_Application.url + "views/boardroom";
            Log.d("url========", url);
            Map<String, String> params = new HashMap<String, String>();
            StringRequest req = new StringRequest(Request.Method.GET,
                    getApplicationContext(), url, params,
                    new Response.Listener<String>() {

                        @Override
                        public void onResponse(String response) {
                            // TODO Auto-generated method stub

                       // Log.d("Response", response);  //can't display more data

                    //=========================
                    longInfo(response); //solution for displaying more data in logcat
                    //=========================

                            pdialog.dismiss();
                        }
                    }, new ErrorListener() {

                        @Override
                        public void onErrorResponse(VolleyError error) {
                            // TODO Auto-generated method stub
                            Log.d("Error.Response", error.toString());
                            pdialog.dismiss();
                        }
                    });

            queue.add(req);
            pdialog.show();
        }   

public void longInfo(String str) {
            if(str.length() > 4000) {
                Log.i("",str.substring(0, 4000));
                longInfo(str.substring(4000));
            } else
                Log.i("",str);
        } 

Note:$ adb logcat -g 环形缓冲区为 64Kb(消耗 63Kb),最大条目为 4096b,最大有效负载为 4076b

LogCat 非常依赖于设备。不同手机之间的尺寸和不良字符处理方式有所不同。

也尝试一下:

     import java.util.*;

        class Test
        {
        public static void main(String[] args)
        {
        System.out.println(Arrays.toString(
        "Thequickbrownfoxjumps".split("(?<=\\G.{4})")
        ));
        }
        }

output: [Theq, uick, brow, nfox, jump, s]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Volley 库不返回完整的响应数据 的相关文章

随机推荐