android - 如何停止 JSoup/OkHttpClient : A connection was leaked?

标签 android jsoup okhttp

我的 Android 应用使用 Jsoup 连接到网站

implementation group: 'org.jsoup', name: 'jsoup', version: '1.11.2'

我的 logcat 有这些消息
OkHttpClient: A connection to http://www.xxx.yyy.zzz/ was leaked. Did you forget to close a response body?

我的 jsoup 连接类似于:-
final Document feedNavigator = Jsoup.connect(uri.toString()).referrer(JSOUP_REFERRER).userAgent(USER_AGENT).followRedirects(true).ignoreContentType(true).ignoreHttpErrors(true).maxBodySize(JSOUP_MAX_BODY_SIZE).timeout(JSOUP_TIMEOUT).get();

我的印象是 jsoup 处理自己的资源。

为什么我会收到这些 logcat 警告?

我该如何解决这个泄漏?

最佳答案

在 Kotlin 我用这种方式:

try {
                val req: Request = Request.Builder().url(url).get().build()
                val client = OkHttpClient()
                val resp: Response = client.newCall(req).execute()
                val code: Int = resp.code() // can be any value
                body= resp.body()
                if (code == 200) {
                    body?.close() // I close it explicitly
                }

关于android - 如何停止 JSoup/OkHttpClient : A connection was leaked?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812145/

相关文章:

android - Android布局真的很难成倍增长吗?

java - 通过jSoup从Div标签获取属性值

java - okhttp3 在 java maven 项目中导致 java.lang.NoClassDefFoundError

Android Jsoup 查找特定元素

java - OkHttpAsyncHttpClient 抛出 IOException : closed downloading blob from Azure container

java - OkHttpClient 将 http URL 重定向到 Https 并给出带有 https URL 的 SSLException

android - 在 Android 中调试随机重启

android - 如何始终在主 Activity 中启动应用程序?

android - 我的 android 应用程序占用大量内存

使用 Jsoup 需要登录的 Java 抓取网站