Retrofit2(3)
-
Retrofit2를 사용하여 서버의 Digest 인증을 처리하기
올해가 삼제긴 삼제인지, 어쩌다보니 Digest와 관련된 내용만 세 번을 처리하게 됐다. 요즈음에는 OAuth2.0을 사용하는 경우가 많아서, Digest 인증을 처리할 일은 거의 없겠지만... 아무튼 이번에는 Retrofit2로 Digest 인증을 처리하는 내용을 다룬다. 우선 Android에서는 iOS와 달리 Basic/Digest 인증에 대한 처리를 지원하지 않기 때문에, 직접 구현해야한다. 이는 Volley를 사용하거는 경우에도 별반 다르지 않다. Volley로 구현되어있는 내용을 Retrofit2로 교체하는 작업이 한창이었기 때문에 내심 별 일 없겠거니 생각하고 있었는데, 레거시 코드를 살펴보니 Deprecated된 Apache 라이브러리를 사용하여 처리하고 있었다. Apache 라이브러리를 사..
2019.11.19 -
Retrofit2를 이용해서 서버로부터 Content-type이 image/jpeg로 이미지를 받아 Bitmap 객체로 처리하기
API를 호출했을 때 Content-type이 image/jpeg로 설정되는 경우, 응답에 JPEG파일이 실려오게 된다. 크롬의 개발자 도구에서 네트워크 탭을 통해 응답을 확인해보면, 실제로 이미지 파일이 응답 본문(Response Body)에 실려오는 것을 볼 수 있다. 그렇다면 Android에서 Retrofit2를 이용하여, 이러한 Bitmap을 처리하려면 어떻게 해야할까? 우선은 아래와 같이 interface를 작성해준다. 파일 용량이 적을 경우에는 @Streaming을 생략해도 잘 동작한다. Call에 넘겨주는 ResponseBody는 okhttp3패키지의 ResponseBody이다. JAVA를 사용하여 작성한 코드 public interface DonwloadImage { @GET("images..
2019.11.05 -
어플리케이션의 HTTP 라이브러리를 Volley에서 Retrofit2로 교체한 후기 #1
Volley에서 Retrofit2로 HTTP 라이브러리의 변경을 결정하기까지. 2019년 11월부터 targetSDKVersion이 28 미만인 앱은 업데이트가 불가능하도록 정책이 변경됐다. targetSDKVersion이 28로 변경되면, Apache의 HTTPClient 지원이 중단된다. 여기까지는 별 생각이 없었는데, 실제로 targetSDKVersion을 28로 변경해보니 뭔가 이상하다. Volley를 사용하여 HTTP 통신을 하는 코드들이 오작동하기 시작한다. Android 5.1에서 HttpClient가 Deprecated되면서, HTTPClient에 의존하는 Volley도 사실상 Deprecated됐기 때문이다. 이에 대한 내용은 Android 통신 라이브러리의 역사를 되돌아본다, Pluu ..
2019.10.24