[Android] Retrofit으로 zip파일(그 외도 가능) 가져오기

양현진·2022년 3월 29일
0

Oh My Android

목록 보기
9/22
post-thumbnail
post-custom-banner

Retrofit으로 String이나 Gson으로 변경하여 DataClass로 받아보기만 했지, 그 외 파일같은 것들은 되는지 생각도 못했다.
이번글은 이미지나 동영상같은 파일들을 Retrofit으로 어떻게 받아오는지에 대해 적어보려한다.

답은 너무나도 간단했다. 응답을 받을 데이터 타입을 ResponseBody로 지정하면 되는거더라... 뭐 더 고칠것도 없어 내용도 짧네

그 후 받은 ResponseBody를 byteArray로 변환하여 원하는 작업을 진행하면 된다. 나는 .zip파일을 받고 Internal Storage에 저장하는 작업을 원해서 다음 코드도 슬쩍 껴보았다.

@GET
@Streaming
fun startDownloadFW(@Url downloadLink: String): Single<ResponseBody>


private fun downloadingFW(zipFile: ResponseBody) {
        var fos: FileOutputStream? = null
        try {
            val input = zipFile.bytes()
            val file = File(filePath, fileName)
            fos = FileOutputStream(file)
            fos.write(input)
         
        } catch (e: Exception){
            Log.e(TAG, "${e.message}")
        } finally {
            fos?.close()
        }
    }
   

이상!

profile
Android Developer
post-custom-banner

0개의 댓글