android开发Android开发Android开发

解决Volley乱码问题

2015-09-19  本文已影响3621人  小追兵

小追兵专栏


现在Android开发的网络请求库很多,这里不一一列举了(原因:别的我没用过,不知道怎么说,哈~)。

Volley是我们常用的一个网络请求库。为什么用Volley?这里不做介绍(原因:别的没用过,其实Volley好在哪里我也不知道。嘿~)

使用Volley的同学,很容易遇到乱码问题,对不对?我没说错吧?你遇到了吗?

乱码问题的产生原因,想必大家都知道!这里我不多说。(原因:我怕说了也白说,其实我怕我说不清除,嘎~)

//网络请求时,new 一个JsonObjectRequest对象,

JsonObjectRequest jbr=new JsonObjectRequest(url, jsonRequest, listener, errorListener);

package com.xxxxx.net;

import java.io.UnsupportedEncodingException;

import org.json.JSONException;
import org.json.JSONObject;

import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.HttpHeaderParser;
import com.android.volley.toolbox.JsonObjectRequest;

//如果返回头中没有Charset,默认UTF-8
public class CharsetJsonRequest extends JsonObjectRequest {

    public CharsetJsonRequest(String url, JSONObject jsonRequest,
            Listener<JSONObject> listener, ErrorListener errorListener) {
        super(url, jsonRequest, listener, errorListener);
    }

    public CharsetJsonRequest(int method, String url, JSONObject jsonRequest,
            Listener<JSONObject> listener, ErrorListener errorListener) {
        super(method, url, jsonRequest, listener, errorListener);
    }

    @Override
    protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {

        try {
            String jsonString = new String(response.data, "UTF-8");
            return Response.success(new JSONObject(jsonString),
                    HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        } catch (JSONException je) {
            return Response.error(new ParseError(je));
        }
    }

}

CharsetJsonRequest jbr=new CharsetJsonRequest(url, jsonRequest, listener, errorListener);

不知道你的问题解决了没。

特此声明,这个方法是从刘老师那里学来的。

csdn博客:
http://blog.csdn.net/itheima_mxh/article/details/48575339

上一篇 下一篇

猜你喜欢

热点阅读