zoukankan      html  css  js  c++  java
  • 解决Volley请求网络数据返回的数据乱码

    本人可参考http://tieba.baidu.com/p/4039693566

    以往一般我们如下写就可以了

    StringRequest request=new StringRequest(url, new Response.Listener<String>() {
    @Override
    public void onResponse(String result) {
        myModelList= JSON.parseObject(result, new TypeReference<List<MyModel>>() {
            });

        myModelAdapter= newMyModelAdapter(myModelList);
            list_market.setAdapter(myModelAdapter);
          }
      },new Response.ErrorListener(){
      @Override
      public void onErrorResponse(VolleyError volleyError) {
    }
    });
    Volley.newRequestQueue(activity).add(request);

    但具体原因result为什么会出现乱码没有时间去研究,解决方法,新建一个类如
    MyStringRequest重写volley的StringRequest,如下,重写完后,将上面的StringRequest替换成MyStringRequest
    public class MyStringRequest extends StringRequest {

    public MyStringRequest(String url, Response.Listener<String> listener,
    Response.ErrorListener errorListener) {
    super(url, listener, errorListener);
    }

    /**
    * 重写以解决乱码问题
    */
    @Override
    protected Response<String> parseNetworkResponse(NetworkResponse response) {
    String str = null;
    try {
    str = new String(response.data, "utf-8");
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    return Response.success(str,
    HttpHeaderParser.parseCacheHeaders(response));
    }
    }
     
  • 相关阅读:
    C语言字符串之无重复字符的最长子串
    C语言递归之求根到叶节点数字之和
    C语言递归之二叉树的最大深度
    C语言递归之翻转二叉树
    C语言递归之对称二叉树
    C语言链表之两数相加
    如何把笔记本电脑的有线网分享给手机上
    安利spacemacs ^^
    lambda创世纪
    jinterface包详解
  • 原文地址:https://www.cnblogs.com/wangoublog/p/5287764.html
Copyright © 2011-2022 走看看