android - 在 OkHttp 中将整个 byteStream/inputStream 响应读取到内存中的最简单方法是什么?

标签 android kotlin webview okhttp

对于 Kotlin 和 OkHttp 来说都相对较新。目前有如下代码

class CustomWebViewClient : WebViewClient() {
    override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? {
        val okClient: OkHttpClient = OkHttpClient()

        val okRequest: Request = Request.Builder().url(request!!.url.toString()).build()

        val response = okClient.newCall(okRequest).execute()

        return WebResourceResponse("", "", response.body!!.byteStream())
        
        // cant call response.close() otherwise the above return object breaks
    }
}

尝试调用 response.close() 时遇到问题,因为它破坏了我的 byteStream()

将响应的全部内容读取到内部字节数组/内存输入流中的最简单方法是什么?

(在随后关闭连接并将输入流的内存中副本传递给响应之前?)

最佳答案

尝试以下其中一项:

response.body().bytes() response.body().string()

关于android - 在 OkHttp 中将整个 byteStream/inputStream 响应读取到内存中的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73643541/

相关文章:

android - Cordova 4.0 上 Android Fragment 内的 Cordova webview

html - 如何在 WebView 中隐藏滚动条?

android - 如何在没有 NFC 和 ADB shell 命令的情况下让我的应用程序成为设备所有者?

unit-testing - 如何对 Kotlin 挂起函数进行单元测试

android - 如何在 Kotlin/Native 中将 const char* 转换为 KString?

android - 无法移动到嵌套子导航组件中的父 fragment ?

javascript - 使用对象参数将javascript代码绑定(bind)到android代码

java - 如何根据用户角色控制Java android应用程序中的组件可见性?

java - Android 模拟器,查找模拟用户位置坐标。有问题

android - 在 Instagram 中发布图片