我们正在使用http://icap.mimo.ch/ netty ICAP客户端。当服务器使用HTTP 403响应时,客户端似乎没有读取HTTP头。任何帮助表示赞赏。
来自mimo编解码器的日志
IcapClient HostIP absoluteFilePath
SKIP_CONTROL_CHARS -------
READ_ICAP_INITIAL_STATE -------
READ_ICAP_HEADER_STATE -------
READ_HTTP_REQUEST_INITIAL_AND_HEADERS -------
8 Feb, 2013 4:15:53 PM org.jboss.netty.channel.SimpleChannelUpstreamHandler WARNING: EXCEPTION, please implement com.chunk.IcapClientHandler.exceptionCaught() for proper handling. java.lang.IllegalArgumentException: invalid version format: FORBIDDEN at org.jboss.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:102) at org.jboss.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:62) at ch.mimo.netty.handler.codec.icap.ReadHttpRequestInitialAndHeadersState.execute(ReadHttpRequestInitialAndHeadersState.java:52) at ch.mimo.netty.handler.codec.icap.IcapMessageDecoder.decode(IcapMessageDecoder.java:98) at ch.mimo.netty.handler.codec.icap.IcapMessageDecoder.decode(IcapMessageDecoder.java:1) at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
响应的数据包捕获:
ICAP / 1.0 200确定
封装:req-hdr = 0,res-hdr = 0,res-body = 176
日期:2013年2月8日星期五09:35:39 GMT
服务:Somethin Systems Somethin Systems DLP SDK ICAP Server 1.0
HTTP / 1.1 403 Forbidden
Content-Type:text / xml
内容长度:1118
服务器:Somethin Systems Somethin Systems DLP SDK ICAP Server 1.0
日期:2013年2月8日星期五09:35:39 GMT
45E
<?xml version="1.0" encoding="UTF-8"?>
<Results>
<Action>3</Action>
</Results>
上面的xml被截断。
答案 0 :(得分:0)
我发现ICAP响应中不允许“req-hdr = 0”。换句话说,问题更多的是ICAP服务器发送不符合的响应。