Volleyネットワークデータ取得で文字化けし

1576 ワード

ここで、StringRequestリクエストを例にとると、他の類似のクラスを書いてStringRequestを継承し、Response parseNetworkResponse(NetworkResponse response)メソッドを書き換え、符号化をutf-8に指定します.コードは次のとおりです.
public class MyStringRequest extends StringRequest {

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

    /**
     *  
     */
    @Override
    protected Response 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));
    }
}

StringRequestではなく、私たちが継承したMyStringRequestクラスを使用すると、問題は解決します.妥当である.