오늘 위치정보를 뿌려주는 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로 변경해주는 소스코드를 추가하여주면된다.
'IT > 안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 에뮬레이터 초기화시키기 (0) | 2021.12.30 |
---|---|
Android ERROR: JAR_SIG_NO_SIGNATURES: No JAR signatures 오류 해결 (0) | 2019.10.30 |
나의 첫 안드로이드 어플이 출시되다.(출시 대기중) (0) | 2019.10.19 |
안드로이드 내위치 찾기 소스(구글맵 이용) (0) | 2019.10.12 |
구글 테스트 아이디를 이용한 안드로이드 애드몹 적용하기 (0) | 2019.10.11 |