Понимание Передачи Файла Сервера ICAP В Проблеме Java

Я пытаюсь заставить сервер Java ICAP взаимодействовать с устройством Blue Coat, которое действует как клиент ICAP. Сервер ICAP, с которым я работаю, находится здесь: icap. В основном у меня все работает, и теперь я застрял на том, почему на стороне сервера я не получаю файл. Ниже несколько строк кода, показывающих, где я нахожусь совсем недавно. Очевидно, большая часть кода была опущена.

IcapRequest request = (IcapRequest)e.getMessage();
ChannelBuffer buffer = null;
buffer = request.getHttpRequest().getContent();
if(buffer != null) {
    System.out.println("Buffer = " + buffer.toString(Charset.defaultCharset()));
}
try {    
    FileOutputStream fout= new FileOutputStream(testfile);
    while (request.getHttpResponse().getContent().readable()) {
        byte[] bb = new byte[request.getHttpResponse().getContent().readableBytes()];
        request.getHttpResponse().getContent().readBytes(bb);
        fout.write(bb);
}

По сути, я вижу использование wireshark, и на своих серверах я получаю имя файла, запрос html и т. Д. Но я не получаю весь контент, когда он большой. Если это небольшой TXT-файл, я могу получить содержимое и сохранить TXT-файл и весь контент на моем диске на стороне сервера. Если это какой-либо файл.docx, размер которого может быть около 10 КБ или больше, то, похоже, будет только один клиентский пакет ICAP с содержимым, использующим метод PSH, но без другого содержимого, поэтому, если я пытаюсь сохранить файл на своем сервере на диске Я не получаю весь контент, поэтому файл в основном поврежден. Поэтому на данный момент я не уверен, почему я не могу заставить свой ICAP-сервер сохранить файл.docx, отправленный с устройства Blue Coat, поскольку я больше склоняюсь к проблеме на стороне сервера. Любой совет будет принята с благодарностью.

0 ответов

Другие вопросы по тегам