2017-04-17 16 views
0

OkHttp에 디스크의 각 응답을 저장할 위치를 지정하고 싶습니다. 기본적으로 캐싱을 위해 저장 될 각 응답의 파일 경로를 지정하려고합니다. 그런 다음 나중에 OkHttp가 응답을 캐시에서 사용할 수 있는지 확인하기 위해이 경로에 액세스해야합니다. 캐시 디렉토리 경로를 설정할 수 있지만 각 요청에 대해 "캐시 파일 경로"를 설정하려고합니다.OkHttp가 캐싱을 위해 디스크의 각 응답을 저장할 위치를 지정하는 방법은 무엇입니까?

어떤 의미에서 각 요청에 대한 디스크 캐싱을 처리 한 다음 제공된 경로를 사용하여 디스크에서 파일을 가져 오거나 디스크에 파일을 가져올 수 있습니까?

답변

1

OkHttp이 작업을 수행 할 수 없습니다. 오히려 OkHttp의 캐시 대신 자신의 디스크 퍼시스턴스 (disk persistence) 방식을 원하는 것처럼 들립니다. 인터셉터를 사용하면됩니다. 캐시가 한계에 도달하면 파일을 삭제할 때주의하십시오!

+0

답변 해 주셔서 감사합니다. 인터셉터가 어떤 특정 메소드에 집중해야 하는지를 제안하는 빠른 코드 스 니펫을 제공해 주시겠습니까? 이것을 달성하기 위해 어떻게 인터셉터를 설치 할 수 있습니까? 나는 주말 내내 이해하지만 여전히 확신 할 수는 없었다. 감사!!!! – asad

+1

[CacheInterceptor] (https://github.com/square/okhttp/blob/master/okhttp/src/main/java/okhttp3/internal/cache/CacheInterceptor)에서 cacheWritingResponse()의 자체 버전을 만들고 싶습니다. .자바). –

+0

감사합니다. 정말로 내 하루를 보냈다. – asad