0

YouTube からの特定のコンテンツ (オーディオ データ) を HTTP 応答メッセージにドロップする必要がある実験目的で、以下のコードを使用しています。

現在、特定のビデオでテストしており、コンテンツのサイズを知っています。このコードなしでいくつかのテストを実行し、サイズ変数をキャプチャしました。

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;
}

ただし、このプログラムを実行すると、ログが出力されます。ただし、コンテンツが実際に削除されるわけではありません。クライアント (ブラウザーのフラッシュ プレーヤー) は引き続きコンテンツをダウンロードできますが、今回はサイズが異なります。ビデオは、ビジュアルとオーディオの両方で再生されます。

コンテンツがクライアントに届く前にドロップオフする正しい方法は何ですか? ここで何か不足していますか?

4

1 に答える 1

1

試す:

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

また、ブラウザがローカル キャッシュからコンテンツをロードしていないことを確認してください。

LittleProxy を使用してそのような応答をインターセプトして変更できるかどうかはわかりません...ただし 、このスレッドは HttpFilter を使用してそうできることを示唆しています (基本構造については、このテスト コードを確認してください)。そうしないと、Little Proxyのソース コードを詳しく調べて、さらにカスタマイズする必要があります。

于 2013-07-10T04:38:33.773 に答える