Volley 를 이용하여 쓰레드를 신경쓰지 않고 코딩할 수 있는데,
외부 API 주소를 통하여 json 이나 xml 코드를 땡겨올때 한글 문자들이 깨지는 현상을 발견했다.
아래의 소스를 바탕으로 parseNetworkResponse 메소드를 오버라이딩 하도록 하자.
String url="url"
StringRequest req=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
/// 소스코드 ///
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override //response를 UTF8로 변경해주는 소스코드
protected Response<String> parseNetworkResponse(NetworkResponse response) {
try {
String utf8String = new String(response.data, "UTF-8");
return Response.success(utf8String, HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
// log error
return Response.error(new ParseError(e));
} catch (Exception e) {
// log error
return Response.error(new ParseError(e));
}
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return super.getParams();
}
};
req.setShouldCache(false);
requestQueue.add(req);