0

I'm facing some problems downloading pdf inside my app. Some pdfs cannot be opened, because of the following message (invalid format)

Error = cannot create document: File not in PDF format or corrupted

Code for Okhttp setup:

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()
}

Code for request:

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()
}

But if I copy that url in chrome browser, chrome will download it, and I am able to open it with the google pdf viewer. The file is also smaller than the file I downloaded from inside my app code. I don't know how to fix this problem, it think it's related how the file is handled, saved in inside the response callback.

pawlinsky
  • 420
  • 1
  • 6
  • 18

0 Answers0