Netty将HTTP响应的内容大小设置为0

时间:2013-07-10 00:23:25

标签: netty little-proxy

对于我需要在HTTP响应消息中删除来自youtube的特定内容(音频数据)的实验目的,我使用下面的代码。

现在我正在使用特定视频进行测试,我知道内容的大小。在没有此代码的情况下进行一些测试并捕获大小变量。

if (contType.equals("text/plain") && contLen > 200000 && contLen < 300000) {
    outputFileName = projRoot + File.separator + folder + File.separator + "v_" + seqNum + "_" + String.valueOf(ranNum);

    log.debug("This is AUDIO data received, and dropping it off");
    response.setHeader("Content-Length", 0);
    response.getContent().clear();
    return true;
}

然而,当我运行这个程序时,我看到日志被打印出来;但是,它并没有真正放弃内容。我看到客户端(浏览器Flash播放器)仍然可以下载内容,而这次的大小不同。该视频以视觉和音频播放。

在内容到达客户端之前删除内容的正确方法是什么?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

尝试:

HttpHeaders.setContentLength(response, 0l);
response.setContent(null); 

还要确保您的浏览器没有从本地缓存加载内容。

我不确定您是否可以使用LittleProxy拦截并更改响应......虽然this thread建议您可以使用HttpFilter执行此操作(请检查this测试代码基本结构)。否则,您将不得不深入了解Little Proxy source code以进一步定制。