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

Netty正在将HTTP响应的内容大小设置为0,netty,little-proxy,Netty,Little Proxy,出于实验目的,我需要在HTTP响应消息中删除来自youtube的特定内容(音频数据),我使用以下代码 现在我正在测试特定的视频,我知道内容的大小。在没有此代码的情况下运行了一些测试,并捕获了大小变量 if (contType.equals("text/plain") && contLen > 200000 && contLen < 300000) { outputFileName = projRoot + File.separator + fo

出于实验目的,我需要在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;
}
if(contType.equals(“text/plain”)&&contLen>200000&&contLen<300000){
outputFileName=projRoot+File.separator+folder+File.separator+“v_”+seqNum+“_”+String.valueOf(ranNum);
调试(“这是接收到的音频数据,并将其删除”);
response.setHeader(“内容长度”,0);
response.getContent().clear();
返回true;
}
然而,当我运行这个程序时,我看到日志被打印出来;但是,它并没有真正删除内容。我看到客户端(浏览器flashplayer)仍然可以下载内容,这次大小不同。视频以视频和音频播放

在内容到达客户端之前,正确的方法是什么?我在这里遗漏了什么吗?

试试:

HttpHeaders.setContentLength(response, 0l);
response.setContent(null); 
还要确保浏览器没有从本地缓存加载内容


我不确定你是否可以用LittleProxy来截取和更改这样的响应。。。尽管建议您可以使用HttpFilter(检查基本结构的测试代码)。否则,您将不得不深入研究小代理以进一步定制。

您所说的“下车”是什么意思?您的意思是阻止您的数据发送到浏览器?在这段代码中,我没有看到任何东西被写入频道。。。查找对
频道的调用。写入
并修改正在写入的内容。正确。在代码中的这一点上,数据已经写入/附加到HTTP响应消息,我正在尝试清除该消息。是的,我试图阻止数据到达浏览器。如果您建议控制channel.write,这意味着我们必须在代理中的较低级别进行控制(我使用的是LittleProxy,它是在netty之上实现的)。有没有办法在HTTP/代理级别处理这个问题?为什么标记为text/plain的内容是音频?这里真正的问题是什么?是youtube服务器发送内容类型为“text/plain”的“音频”。在我的用例中,我需要在视频到达客户端/浏览器之前将音频信息从视频中剥离出来。请注意,Youtube服务器在两个单独的HTTP响应消息中发送音频和视频。在上面的代码中,我试图清除包含音频的HTTP响应消息。