Interceptor 2

[안드로이드] 특정 시간 내 중복 Request를 막는 OkHTTP Interceptor 구현하기

특정시간 안에 보낸 동일한 Request에 대해서 서버에 요청하지 않고, 이전에 받은 응답값을 그대로 내려주는 Interceptor를 구현해보았다. Response Body를 어떻게 재사용할 것인가 고민을 많이 했는데, ByteArray 형태로 읽어두고 중복된 요청일때 ResponseBody로 만들어주는 방법을 사용해보았다. 이렇게 짧은 시간안에 연속적으로 요청을하더라도, 500ms 이후에만 새로 요청을 하게된다. 개발중인 앱의 Request Method가 전부 POST이기때문에, Request body까지 읽어서 hashing을 하고있는데, 그럴 필요까지 없으신분들은 Request URL 자체를 hash 값으로 잡아도 무방할 것이다. 혹시 유용했다면 Star를~! HTML 삽입 미리보기할 수 없는 소스

[안드로이드] Retrofit2 오프라인 캐시 구현하기 (Offline cache interceptor)

캐싱의 이점 서버 대역폭 낭비를 줄일 수 있다. 응답을 받기까지 기다리는 시간을 줄일 수 있다. 서버 트래픽을 줄여준다. Cache-Control이란 무엇인가? Cache-Control은 브라우저단의 캐싱 정책을 정의하는 HTTP 캐시 헤더다. 클라이언트가 서버에게 요청을 호출하면, 브라우저는 자원 사본을 캐싱 하여 다음 번 접근 시에 서버에 처음부터 다시 파일을 요청하는 일이 없도록 할 수 있다. Cache-Control을 통해서 캐시 정책을 세울 수 있다. 자주 쓰는 Cache-Control Directives Directives를 한국말로 뭘로 하면좋을까.. 지시사항? 아무튼 그걸 살펴보려하는데, 여러 Directive들은 콤마(,)로 구분 가능하다. Directive를 이용하여 응답(Respons..