【发布时间】:2015-05-17 07:43:20
【问题描述】:
我想使用 OkHttpClient 加载一个 url,如果给定 url 的网站以 pdf 内容类型响应,我将继续下载 PDF,否则我想忽略响应。
我的问题是,我是否需要做任何特别的事情来关闭请求/响应,或者我是否需要做任何事情来表明如果我选择不读取响应字节流,我将不会使用响应?如果没有,OkHttpClient 什么时候关闭连接?
【问题讨论】:
我想使用 OkHttpClient 加载一个 url,如果给定 url 的网站以 pdf 内容类型响应,我将继续下载 PDF,否则我想忽略响应。
我的问题是,我是否需要做任何特别的事情来关闭请求/响应,或者我是否需要做任何事情来表明如果我选择不读取响应字节流,我将不会使用响应?如果没有,OkHttpClient 什么时候关闭连接?
【问题讨论】:
调用response.body().close() 将释放响应所持有的所有资源。连接池将保持连接打开,但如果未使用,则会在超时后自动关闭。
【讨论】:
onResponse 时关闭。如果没有,那么我们会尽早取消它,以至于没有什么可以关闭的。
response.close(),根据文档,它等同于response.body().close()。