Скачивание pdf с охтп и окио - PullRequest
0 голосов
/ 23 июня 2019

Я столкнулся с некоторыми проблемами при загрузке PDF в моем приложении.Не удается открыть некоторые PDF-файлы из-за следующего сообщения (недопустимый формат)

Ошибка = невозможно создать документ: файл не в формате PDF или поврежден

Код для настройки Okhttp:

val file = File(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), mArgs.docName)
val request = Request.Builder()
.url(mArgs.url)
.addHeader("Authorization", "Bearer $token")
.build()

if (mOkBuilder == null) {
   mOkBuilder = OkHttpClient.Builder()
   mOkBuilder = mOkBuilder?.
   addNetworkInterceptor(mLoadingInterceptor)
   mOkHttpClient = mOkBuilder?.build()
}

Код для запроса:

mOkHttpClient?.newCall(request)?.enqueue(object : Callback {
    ....
    ....
    override fun onRespone(call: Call, response: Response) {
        val sink = Okio.buffer(Okio.sink(file))
        sink.writeAll(response.body()?.source())
        sink.close()
}

Но если я скопирую этот URL в браузере Chrome, Chrome загрузит его, и я смогу открыть его с помощью Google PDF Viewer,Файл также меньше, чем файл, который я скачал из своего кода приложения.Я не знаю, как решить эту проблему, она думает, что это связано с обработкой файла, сохраненным внутри ответного обратного вызова.

...