투케이2K

99. (TWOK/ERROR) [Android/Ios] http 요청 시 캐싱 (cache) 된 응답 값이 내려오는 이슈 - okhttp , URLSession 본문

투케이2K 에러관리

99. (TWOK/ERROR) [Android/Ios] http 요청 시 캐싱 (cache) 된 응답 값이 내려오는 이슈 - okhttp , URLSession

투케이2K 2022. 9. 13. 14:58

[환경 설정 및 설명]

프로그램 : AndroidStudio / Xcode

설 명 : http 요청 시 캐싱 (cache) 된 응답 값이 내려오는 이슈 - okhttp , URLSession

 

[에러 원인]

1. http 요청 시 요청 헤더 값에 Cache-Control 이 캐싱으로 설정되어 있어서 발생하는 이슈

 

[해결 방법]

1. http 요청 헤더 값에 Cache-Control no-cache 설정 실시

 

[안드로이드]

            // [OK HTTP 객체 선언 실시]
            //OkHttpClient client = new OkHttpClient();

            OkHttpClient client = new OkHttpClient.Builder()
                    .connectTimeout(10, TimeUnit.SECONDS) // [커넥션 제한 시간]
                    //.readTimeout(5, TimeUnit.SECONDS)
                    //.writeTimeout(5, TimeUnit.SECONDS)
                    .retryOnConnectionFailure(false)
                    .build();

            Request.Builder request = new Request.Builder();
            HttpUrl.Builder httpBuilder = HttpUrl.get(URI.create(url)).newBuilder();
            request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8;"); // [헤더]
            request.addHeader("Cache-Control", "no-cache"); // [헤더]


            // [httpBuilder 추가]
            request.url(httpBuilder.build());










[IOS]

            // [http 비동기 방식을 사용해서 파일 다운로드 및 저장 수행 실시]
            var urlComponents = URLComponents(string: fileUrl)
            var requestURL = URLRequest(url: (urlComponents?.url)!)
            requestURL.httpMethod = "GET" // GET
            requestURL.addValue("application/x-www-form-urlencoded; charset=utf-8;", forHTTPHeaderField: "Content-Type") // 헤더
            requestURL.addValue("no-cache", forHTTPHeaderField: "Cache-Control") // 헤더

 

반응형
Comments