如何正确设置ICAP Netty服务器修改回复

时间:2018-10-24 00:33:45

标签: java network-programming netty icap

我已经在这个项目上工作了两个多星期。我觉得自己就快要走了。到目前为止,我已经能够从Blue Coat代理接收ICAP响应修改请求。到目前为止,我可以将文件“ text或.docx”带离测试为止。我能够验证和清除文件。但是,现在我已经准备好将所有数据发送回ChannelBuffer或Byte Array中的用户“修改后的文件”。但是,我不了解如何设置要发送回的消息,因为我没有找到任何代码示例,文档也很薄,我的Java经验也很低。

            Encapsulated shell = message.getEncapsulatedHeader();

            //shell.
           // for (Map.Entry<String,String> s : headerlist) {
            //  System.out.println(s.getKey() + s.getValue());
                //Encapsulated shell()
            //}
            message.getHttpResponse().setContent(cBuffer);
            IcapResponse response = new DefaultIcapResponse(IcapVersion.ICAP_1_0,IcapResponseStatus.OK);
            response.setHeader("Host", "192.168.1.48");
            //response.setHttpResponse((HttpRequest)message);

            //response.setHttpResponse(message.getHttpResponse());    //*** THIS DOES NOT WORK (OR AT LEAST IT makes client say no server response"

            //response.addHeader(IcapHeaders.Names.ISTAG,"SimpleServer-version-1.0");
            //response.setEncapsulatedHeader(shell);
            //response.setHttpRequest(message.getHttpRequest());
            //response.setBody(IcapMessageElementEnum.RESBODY);
            //response.setContent(cBuffer); //cBuffer contains cleansed File but I am not sure what to try
            //response.


            System.out.println("********  Response Content: " + response + "********");
            ctx.getChannel().write(response);

到目前为止,还没有文件将其返回给用户。同样,从wireshark看来,还没有文件内容被发送。无论我如何尝试,消息正文几乎都为空。我的下一步可能是构建一个全新的HtmlResponse消息,看看是否可行,但我觉得它应该没有那么复杂。有任何想法吗?预先感谢。

0 个答案:

没有答案