我在我的应用程序中下载 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()
}
但是如果我在 chrome 浏览器中复制那个 url,chrome 会下载它,我可以用 google pdf 查看器打开它。该文件也比我从应用程序代码中下载的文件小。我不知道如何解决这个问题,它认为这与文件的处理方式有关,保存在响应回调中。