느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

오늘 위치정보를 뿌려주는 Rest API 서버를 개발하여 해당 서버와 연결하여서 작업을 진행하려고 하였으나 안드로이드의 경우 Thread를 이용하여 URL Connection을 진행할 수있다. 그리고 이러한 URLConnection을 Thread에 신경쓰지 않고 사용할 수 있도록 하는 것이 Volley 라는 라이브러리인데 해당 라이브러리를 사용하는데 한글 깨짐현상인 발생하였다. 이러한 현상을 방지하기 위한 추가코드를 포스팅 한다.

 

 

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);

위와 같이 parseNetworkResponse 메서드를 오버라이딩하여 response 데이터를 UTF-8로 변경해주는 소스코드를 추가하여주면된다.

profile

느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

@주현태

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!