0

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

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

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 播放器)仍然能够下载内容,而且这次大小不同。视频以视频和音频的形式播放。

在内容到达客户之前丢弃内容的正确方法是什么?我在这里错过了什么吗?

4

1 回答 1

1

尝试:

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

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

我不确定你是否可以使用 LittleProxy 来拦截和更改这样的响应......虽然 这个线程建议你可以使用 HttpFilter 来做到这一点(检查这个测试代码的基本结构)。否则,您将不得不深入研究 Little Proxy源代码以进行进一步的定制。

于 2013-07-10T04:38:33.773 回答