我正在使用Apache的HttpRequestHandler向HTTP客户端提供数据。我正在按需为客户生成内容(可能是一个代价高昂的过程)。
我想照顾两个案例:
我正在使用一个执行该过程的InputStream(和一个InputStreamEntity),但是我想知道客户端是否过早地关闭了资源(或者不是),并且在两种情况下最后都采取了操作。
我意识到InputStreamEntity.writeTo
(这是用于将内容发送到客户端的方法)不会关闭我声明的输入流。
我错过了什么?
答案 0 :(得分:0)
我通过继承InputStreamEntity
并在原始行为后调用writeTo
来解决这个问题:
public class ClosingInputStreamEntity extends InputStreamEntity {
@Override
public void writeTo(OutputStream os) {
try {
super.writeTo(OutputStream os);
} finally {
// close resources
}
}
}