웹에서 데이터가 필요한 Android 애플리케이션을 작성하고 싶습니다. 이 정보는 json 파일에 저장됩니다. json 파일의 데이터가 장치에 저장됩니다. 최신 상태로 유지하려면 매 시간마다 파일의 변경 사항을 확인해야합니다.Android : 변경된 경우에만 파일 다운로드
원격 파일이 상당히 커질 수 있기 때문에 이전에 다운로드 한 버전과 다른 경우에만 다운로드하고 싶습니다. 나는 이것에 대해 HTTP의 Last-Modified-Header를 사용하는 것에 대해 생각했다.
나는 다음과 같은 워크 플로우 (의사 코드)를 내놓았다 :
data = null; data_timestamp = null;
- 매 시간마다 반복 :
- 문제 헤더
Last-Modified
의 URL 및 옵션new_timestamp
에 HTTP 헤드-요청 . - 만약 하나
data==null
또는 다음new_timestamp > data_timestamp
- 문제 정상적인 URL을
data
에 - 에 저장하기 HTTP-요청 및
data_timestamp = new_timestamp
- 문제 정상적인 URL을
- 문제 헤더
당신이 합리적인 생각합니까 설정을 접근? 마지막 다운로드 이후에 변경된 경우에만 if-modified-since
HTTP 헤더를 사용하여 데이터를 가져올 수 있습니다. 이것은 나에게 하나의 요청을 구할 것이다. 변경된 경우, 새 데이터를 포함하는 본문이 제공되며 그렇지 않은 경우 본문은 비어 있습니다.
나는 또한 일반적으로 파일에 새 콘텐츠가있는 경우 (그리고 수정 된 날짜가 변경되지 않은 경우) 다운로드하려는 경우 ETags를 사용하려고 생각했지만 웹 서버 (nginx)는 etags 및 성능상의 이유로 서버 측에 다른 레이어를 포함하고 싶지 않습니다.
나는 ETags를 이미 보았지만, 현재 웹 서버 (ngnix)는 상자를 지원하지 않습니다. 하지만 힌트를 주셔서 감사합니다. – theomega